Dockerfile (3409B)
1 FROM $DOCKER_IMAGE_PARENT 2 MAINTAINER Edwin Takahashi <egao@mozilla.com> 3 4 # Create necessary directories 5 RUN mkdir -p /artifacts 6 7 # We need to declare all potentially cache volumes as caches. Also, 8 # making high I/O paths volumes increase I/O throughput because of 9 # AUFS slowness. 10 VOLUME /builds/worker/.task-cache/npm 11 VOLUME /builds/worker/.task-cache/pip 12 VOLUME /builds/worker/.task-cache/uv 13 VOLUME /builds/worker/checkouts 14 VOLUME /builds/worker/tooltool-cache 15 VOLUME /builds/worker/workspace 16 17 # In test.sh we accept START_VNC to start a vnc daemon. 18 # Exposing this port allows it to work. 19 EXPOSE 5900 20 21 # %include python/mozbuild/mozbuild/action/tooltool.py 22 ADD topsrcdir/python/mozbuild/mozbuild/action/tooltool.py /setup/tooltool.py 23 24 # %include taskcluster/docker/recipes/common.sh 25 ADD topsrcdir/taskcluster/docker/recipes/common.sh /setup/common.sh 26 27 # %include taskcluster/docker/recipes/install-node.sh 28 ADD topsrcdir/taskcluster/docker/recipes/install-node.sh /setup/install-node.sh 29 30 # Add wrapper scripts for xvfb allowing tasks to easily retry starting up xvfb 31 # %include taskcluster/docker/recipes/xvfb.sh 32 ADD topsrcdir/taskcluster/docker/recipes/xvfb.sh /builds/worker/scripts/xvfb.sh 33 34 ADD topsrcdir/python/mozbuild/mozbuild/action/tooltool.py /builds/worker/scripts/tooltool.py 35 36 # %include build/psutil_requirements.txt 37 ADD topsrcdir/build/psutil_requirements.txt /setup/psutil_requirements.txt 38 # %include taskcluster/docker/recipes/ubuntu1804-test-system-setup.sh 39 ADD topsrcdir/taskcluster/docker/recipes/ubuntu1804-test-system-setup.sh /setup/system-setup.sh 40 RUN bash /setup/system-setup.sh 41 42 # %include taskcluster/scripts/tester/test-linux.sh 43 ADD topsrcdir/taskcluster/scripts/tester/test-linux.sh /builds/worker/bin/test-linux.sh 44 45 # Set variable normally configured at login, by the shells parent process, these 46 # are taken from GNU su manual 47 ENV LANG en_US.UTF-8 48 ENV LC_ALL en_US.UTF-8 49 ENV PATH $PATH:/builds/worker/bin 50 51 # This helps not forgetting setting DISPLAY=:0 when running 52 # tests outside of test.sh 53 ENV DISPLAY :0 54 55 # Add utilities and configuration 56 COPY dot-files/config /builds/worker/.config 57 58 # Disable apport (app crash reporter) to avoid stealing focus from test runs 59 ADD apport /etc/default/apport 60 61 # Disable font antialiasing for now to match releng's setup 62 ADD fonts.conf /builds/worker/.fonts.conf 63 64 # Bug 1345105 - Do not run periodical update checks and downloads 65 ADD autostart/gnome-software-service.desktop /etc/xdg/autostart/ 66 67 # allow the worker user to access video devices 68 RUN usermod -a -G video worker 69 70 # Set execution and ownership privileges 71 RUN chmod +x bin/*; chown -R worker:worker /builds/worker 72 73 # Set up first-run experience for interactive mode 74 ADD motd /etc/taskcluster-motd 75 ADD taskcluster-interactive-shell /bin/taskcluster-interactive-shell 76 RUN chmod +x /bin/taskcluster-interactive-shell 77 78 # Bug 1638183 - increase xserver maximum client count 79 COPY dot-files/config/xorg/99-serverflags.conf /usr/share/X11/xorg.conf.d/ 80 81 # Ubuntu 18.04 (or any other GNOME3 based systems) needs dbus to have various 82 # test function as expected. Use entrypoint to initialize dbus as root. 83 COPY dbus.sh /usr/local/bin/dbus.sh 84 RUN chmod +x /usr/local/bin/dbus.sh 85 ENTRYPOINT ["/usr/local/bin/dbus.sh"] 86 87 # Set a default command useful for debugging 88 CMD ["/bin/bash", "--login"]