1 Docker 2 ====== 3 4 Docker files to handle Gold + lottie-web integration 5 6 7 lottie-web-puppeteer 8 -------------------- 9 10 This image has Google Chrome, [puppeteer](https://github.com/GoogleChrome/puppeteer), 11 and a few other tools for automating web-browser tests. 12 13 This image is standalone and does not have any extra dependencies that make 14 it Skia-exclusive. 15 16 It gets manually pushed anytime there's an update to the Dockerfile or relevant 17 installed libraries. 18 19 docker build -t lottie-web-puppeteer ./lottie-web-puppeteer/ 20 LOTTIE_VERSION="v2" # use v1, v2, etc for any re-spins of the container. 21 docker tag lottie-web-puppeteer gcr.io/skia-public/lottie-web-puppeteer:$LOTTIE_VERSION 22 docker push gcr.io/skia-public/lottie-web-puppeteer:$LOTTIE_VERSION 23 24 Of note, some versions (generally before Chrome 60) run out of space on /dev/shm when 25 using the default Docker settings. To be safe, it is recommended to run the container 26 with the flag --shm-size=2gb. 27 28 For testing the image locally, the following can be helpful: 29 30 docker build -t lottie-web-puppeteer ./lottie-web-puppeteer/ 31 # Run bash in it to poke around and make sure things are properly installed 32 docker run -it --shm-size=2gb lottie-web-puppeteer /bin/bash 33 # Create a screenshot of a single .json file which will be put in 34 # $SKIA_ROOT/tools/lottiecap/docker_strip.png 35 docker run -it -v $SKIA_ROOT:/SRC -v ~/lottie-samples:/LOTTIE_FILES -v $LOTTIE_ROOT/build/player:/LOTTIE_BUILD -w /SRC/tools/lottiecap lottie-web-puppeteer node /SRC/tools/lottiecap/lottiecap.js --input /LOTTIE_FILES/body_movin.json --lottie_player /LOTTIE_BUILD/lottie.min.js --in_docker --output docker_strip.png 36 37 gold-lottie-web-puppeteer 38 ------------------------- 39 40 This image has Google Chrome, [puppeteer](https://github.com/GoogleChrome/puppeteer), 41 and a few other tools for automating web-browser tests. 42 43 This image assumes the runner wants to collect the output images and JSON data 44 specific to Skia Infra's Gold tool (image correctness). 45 46 It gets manually pushed anytime there's an update to the Dockerfile or relevant 47 installed libraries. 48 49 # Run the following from $SKIA_ROOT/infra/pathkit 50 make gold-docker-image 51 LOTTIE_VERSION="v2" # use v1, v2, etc for any re-spins of the container. 52 docker tag gold-lottie-web-puppeteer gcr.io/skia-public/gold-lottie-web-puppeteer:$LOTTIE_VERSION 53 docker push gcr.io/skia-public/gold-lottie-web-puppeteer:$LOTTIE_VERSION 54 55 56 Of note, some versions (generally before Chrome 60) run out of space on /dev/shm when 57 using the default Docker settings. To be safe, it is recommended to run the container 58 with the flag --shm-size=2gb. 59 60 For testing the image locally, the following can be helpful: 61 62 # Run the following from $SKIA_ROOT/infra/pathkit 63 make gold-docker-image 64 docker run -it --shm-size=2gb gold-lottie-web-puppeteer /bin/bash 65 # Collect the gold output with the local source repo and *all* of the files 66 # from lottie-samples 67 mkdir -p -m 0777 /tmp/dockerout 68 docker run -v ~/lottie-samples:/LOTTIE_FILES -v $SKIA_ROOT:/SRC -v $LOTTIE_ROOT/build/player:/LOTTIE_BUILD -v /tmp/dockerout:/OUT gold-lottie-web-puppeteer /SRC/infra/lottiecap/docker/lottiecap_gold.sh