1*c8dee2aaSAndroid Build Coastguard Worker# Docker container with Chrome, and karma/jasmine, to be used to run JS tests. 2*c8dee2aaSAndroid Build Coastguard Worker# Inspired by https://github.com/eirslett/chrome-karma-docker 3*c8dee2aaSAndroid Build Coastguard Worker# 4*c8dee2aaSAndroid Build Coastguard Worker# Tests will be run as non-root (user skia, in fact), so /OUT should have permissions 5*c8dee2aaSAndroid Build Coastguard Worker# 777 so as to be able to create output there. 6*c8dee2aaSAndroid Build Coastguard Worker 7*c8dee2aaSAndroid Build Coastguard WorkerFROM node:14.15 8*c8dee2aaSAndroid Build Coastguard Worker 9*c8dee2aaSAndroid Build Coastguard WorkerRUN apt-get update && apt-get upgrade -y 10*c8dee2aaSAndroid Build Coastguard Worker 11*c8dee2aaSAndroid Build Coastguard WorkerRUN wget https://github.com/Yelp/dumb-init/releases/download/v1.2.2/dumb-init_1.2.2_amd64.deb 12*c8dee2aaSAndroid Build Coastguard WorkerRUN dpkg -i dumb-init_*.deb 13*c8dee2aaSAndroid Build Coastguard Worker 14*c8dee2aaSAndroid Build Coastguard WorkerENTRYPOINT ["/usr/bin/dumb-init", "--"] 15*c8dee2aaSAndroid Build Coastguard Worker 16*c8dee2aaSAndroid Build Coastguard WorkerRUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - 17*c8dee2aaSAndroid Build Coastguard WorkerRUN sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' 18*c8dee2aaSAndroid Build Coastguard WorkerRUN apt-get update && apt-get install -y google-chrome-stable 19*c8dee2aaSAndroid Build Coastguard Worker 20*c8dee2aaSAndroid Build Coastguard Worker#Add user so we don't have to run as root (prevents us from over-writing files in /SRC) 21*c8dee2aaSAndroid Build Coastguard WorkerRUN groupadd -g 2000 skia \ 22*c8dee2aaSAndroid Build Coastguard Worker && useradd -u 2000 -g 2000 skia \ 23*c8dee2aaSAndroid Build Coastguard Worker && mkdir -p /home/skia \ 24*c8dee2aaSAndroid Build Coastguard Worker && chown -R skia:skia /home/skia 25*c8dee2aaSAndroid Build Coastguard Worker 26*c8dee2aaSAndroid Build Coastguard Worker# These directories can be used for mounting a source checkout and having a place to put outputs. 27*c8dee2aaSAndroid Build Coastguard WorkerRUN mkdir -m 0777 /SRC /OUT 28*c8dee2aaSAndroid Build Coastguard Worker 29*c8dee2aaSAndroid Build Coastguard Worker# Run everything after as non-privileged user. 30*c8dee2aaSAndroid Build Coastguard WorkerUSER skia 31*c8dee2aaSAndroid Build Coastguard Worker 32*c8dee2aaSAndroid Build Coastguard WorkerWORKDIR /home/skia