| FROM ubuntu:18.04 |
| |
| # No interactive frontend during docker build |
| ENV DEBIAN_FRONTEND=noninteractive \ |
| DEBCONF_NONINTERACTIVE_SEEN=true |
| |
| # General requirements not in the base image |
| RUN apt-get -qqy update \ |
| && apt-get -qqy install \ |
| bridge-utils \ |
| bzip2 \ |
| ca-certificates \ |
| dbus-x11 \ |
| earlyoom \ |
| fluxbox \ |
| gdebi \ |
| git \ |
| gstreamer1.0-plugins-bad \ |
| libosmesa6-dev \ |
| libvirt-daemon-system \ |
| libvirt-clients \ |
| libunwind8 \ |
| locales \ |
| openjdk-8-jre-headless \ |
| pulseaudio \ |
| python \ |
| python-pip \ |
| python3 \ |
| python3-pip \ |
| qemu-kvm \ |
| tzdata \ |
| sudo \ |
| unzip \ |
| wget \ |
| xvfb |
| |
| # Installing just the deps of firefox and chrome is moderately tricky, so |
| # just install the default versions of them, and some extra deps we happen |
| # to know that chrome requires |
| |
| RUN apt-get -qqy install \ |
| firefox \ |
| libnss3-tools \ |
| fonts-liberation \ |
| indicator-application \ |
| libappindicator1 \ |
| libappindicator3-1 \ |
| libdbusmenu-gtk3-4 \ |
| libindicator3-7 \ |
| libindicator7 |
| |
| RUN apt-get -y autoremove |
| |
| RUN pip install --upgrade pip |
| RUN pip install virtualenv |
| |
| ENV TZ "UTC" |
| RUN echo "${TZ}" > /etc/timezone \ |
| && dpkg-reconfigure --frontend noninteractive tzdata |
| |
| # Set the locale |
| RUN locale-gen en_US.UTF-8 |
| ENV LANG en_US.UTF-8 |
| ENV LANGUAGE en_US:en |
| ENV LC_ALL en_US.UTF-8 |
| |
| RUN useradd test \ |
| --shell /bin/bash \ |
| --create-home \ |
| && usermod -a -G sudo test \ |
| && usermod -a -G libvirt test \ |
| && usermod -a -G libvirt-qemu test \ |
| && echo 'ALL ALL = (ALL) NOPASSWD: ALL' >> /etc/sudoers \ |
| && echo 'test:secret' | chpasswd |
| |
| ENV SCREEN_WIDTH 1280 |
| ENV SCREEN_HEIGHT 1024 |
| ENV SCREEN_DEPTH 24 |
| ENV DISPLAY :99.0 |
| |
| USER test |
| |
| WORKDIR /home/test |
| |
| # Remove information on how to use sudo on login |
| RUN sudo echo "" |
| |
| RUN mkdir -p /home/test/artifacts |
| RUN mkdir -p /home/test/bin |
| |
| ENV PATH="/home/test/bin:/home/test/.local/bin:${PATH}" |
| |
| WORKDIR /home/test/ |
| |
| COPY .bashrc /home/test/.bashrc |
| |
| COPY start.sh /home/test/start.sh |
| COPY retry.py /home/test/bin/retry |