• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Docker
2======
3
4Docker files to ease working with PathKit and WASM.
5
6emsdk-base
7----------
8
9This image has an Emscripten SDK environment that can be used for
10compiling projects (e.g. Skia's PathKit) to WASM/asm.js.
11
12This image is standalone and does not have any extra dependencies that make
13it Skia-exclusive.
14
15It gets manually pushed anytime there's an update to the Dockerfile or relevant
16installed libraries.
17
18    make publish_emsdk_base
19
20For testing the image locally, the following flow can be helpful:
21
22    docker build -t emsdk-base ./emsdk-base/
23    # Run bash in it to poke around and make sure things are properly installed
24    docker run -it emsdk-release /bin/bash
25    # Compile PathKit with the local image
26    docker run -v $SKIA_ROOT:/SRC -v $SKIA_ROOT/out/dockerpathkit:/OUT emsdk-base /SRC/infra/pathkit/build_pathkit.sh
27
28karma-chrome-tests
29------------------
30
31This image has Google Chrome and karma/jasmine installed on it, which can
32be used to run JS tests.
33
34This image is standalone and does not have any extra dependencies that make
35it Skia-exclusive.
36
37It gets manually pushed anytime there's an update to the Dockerfile or relevant
38installed libraries.
39
40    make publish_karma_chrome_tests
41
42Of note, some versions (generally before Chrome 60) run out of space on /dev/shm when
43using the default Docker settings.  To be safe, it is recommended to run the container
44with the flag --shm-size=2gb.
45
46For testing the image locally, the following can be helpful:
47
48    docker build -t karma-chrome-tests ./karma-chrome-tests/
49    # Run bash in it to poke around and make sure things are properly installed
50    docker run -it --shm-size=2gb karma-chrome-tests /bin/bash
51    # Run the tests (but not capturing Gold output) with the local source repo
52    docker run --shm-size=2gb -v $SKIA_ROOT:/SRC karma-chrome-tests karma start /SRC/infra/pathkit/karma-docker.conf.js --single-run
53
54gold-karma-chrome-tests
55------------------
56
57This image has Google Chrome and karma/jasmine installed on it, which can
58be used to run JS tests.
59
60This image assumes the runner wants to collect the output images and JSON data
61specific to Skia Infra's Gold tool (image correctness).
62
63It gets manually pushed anytime there's an update to the Dockerfile or the parent
64image (karma-chrome-tests).
65
66    # Run the following from $SKIA_ROOT/infra/pathkit
67    make publish_gold_karma_chrome_tests
68
69Of note, some versions (generally before Chrome 60) run out of space on /dev/shm when
70using the default Docker settings.  To be safe, it is recommended to run the container
71with the flag --shm-size=2gb.
72
73For testing the image locally, the following can be helpful:
74
75    # Run the following from $SKIA_ROOT/infra/pathkit
76    make gold-docker-image
77    # Run bash in it to poke around and make sure things are properly installed
78    docker run -it --shm-size=2gb gold-karma-chrome-tests /bin/bash
79    # Run the tests and collect Gold output with the local source repo
80    mkdir -p -m 0777 /tmp/dockergold
81    docker run --shm-size=2gb -v $SKIA_ROOT:/SRC -v /tmp/dockergold:/OUT gold-karma-chrome-tests /SRC/infra/pathkit/test_pathkit.sh
82
83perf-karma-chrome-tests
84------------------
85
86This image has Google Chrome and karma/jasmine installed on it, which can
87be used to run JS tests.
88
89This image assumes the runner wants to collect the output images and JSON data
90specific to Skia Infra's Perf tool.
91
92It gets manually pushed anytime there's an update to the Dockerfile or the parent
93image (karma-chrome-tests).
94
95    # Run the following from $SKIA_ROOT/infra/pathkit
96    make publish_perf_karma_chrome_tests
97
98Of note, some versions (generally before Chrome 60) run out of space on /dev/shm when
99using the default Docker settings.  To be safe, it is recommended to run the container
100with the flag --shm-size=2gb.
101
102For testing the image locally, the following can be helpful:
103
104    # Run the following from $SKIA_ROOT/infra/pathkit
105    make perf-docker-image
106    # Run bash in it to poke around and make sure things are properly installed
107    docker run -it --shm-size=2gb perf-karma-chrome-tests /bin/bash
108    # Run the tests and collect Perf output with the local source repo
109    mkdir -p -m 0777 /tmp/dockerperf
110    docker run --shm-size=2gb -v $SKIA_ROOT:/SRC -v /tmp/dockerperf:/OUT perf-karma-chrome-tests /SRC/infra/pathkit/perf_pathkit.sh
111