README.md
1 Docker
2 ======
3
4 Docker files to ease working with PathKit and WASM.
5
6 emsdk-base
7 ----------
8
9 This image has an Emscripten SDK environment that can be used for
10 compiling projects (e.g. Skia's PathKit) to WASM/asm.js.
11
12 This image is standalone and does not have any extra dependencies that make
13 it Skia-exclusive.
14
15 It gets manually pushed anytime there's an update to the Dockerfile or relevant
16 installed libraries.
17
18 make publish_emsdk_base
19
20 For 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
28 karma-chrome-tests
29 ------------------
30
31 This image has Google Chrome and karma/jasmine installed on it, which can
32 be used to run JS tests.
33
34 This image is standalone and does not have any extra dependencies that make
35 it Skia-exclusive.
36
37 It gets manually pushed anytime there's an update to the Dockerfile or relevant
38 installed libraries.
39
40 make publish_karma_chrome_tests
41
42 Of note, some versions (generally before Chrome 60) run out of space on /dev/shm when
43 using the default Docker settings. To be safe, it is recommended to run the container
44 with the flag --shm-size=2gb.
45
46 For 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
54 gold-karma-chrome-tests
55 ------------------
56
57 This image has Google Chrome and karma/jasmine installed on it, which can
58 be used to run JS tests.
59
60 This image assumes the runner wants to collect the output images and JSON data
61 specific to Skia Infra's Gold tool (image correctness).
62
63 It gets manually pushed anytime there's an update to the Dockerfile or the parent
64 image (karma-chrome-tests).
65
66 # Run the following from $SKIA_ROOT/infra/pathkit
67 make publish_gold_karma_chrome_tests
68
69 Of note, some versions (generally before Chrome 60) run out of space on /dev/shm when
70 using the default Docker settings. To be safe, it is recommended to run the container
71 with the flag --shm-size=2gb.
72
73 For 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
83 perf-karma-chrome-tests
84 ------------------
85
86 This image has Google Chrome and karma/jasmine installed on it, which can
87 be used to run JS tests.
88
89 This image assumes the runner wants to collect the output images and JSON data
90 specific to Skia Infra's Perf tool.
91
92 It gets manually pushed anytime there's an update to the Dockerfile or the parent
93 image (karma-chrome-tests).
94
95 # Run the following from $SKIA_ROOT/infra/pathkit
96 make publish_perf_karma_chrome_tests
97
98 Of note, some versions (generally before Chrome 60) run out of space on /dev/shm when
99 using the default Docker settings. To be safe, it is recommended to run the container
100 with the flag --shm-size=2gb.
101
102 For 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