Source code

Revision control

Other Tools

FROM ubuntu:20.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 \
curl \
dbus-x11 \
earlyoom \
fluxbox \
gdebi \
git \
gstreamer1.0-plugins-bad \
gstreamer1.0-gl \
libosmesa6-dev \
libvirt-daemon-system \
libvirt-clients \
libunwind8 \
libxcb-shape0-dev \
locales \
openjdk-8-jre-headless \
pulseaudio \
python2 \
python2-dev \
python3 \
python3-dev \
python3-pip \
software-properties-common \
qemu-kvm \
tzdata \
sudo \
unzip \
wget \
xvfb
# python3.6 is not available by default in new versions of Ubuntu.
RUN apt-add-repository -y ppa:deadsnakes/ppa
# Ensure that scripts referencing `/usr/bin/env python` work.
RUN apt install python-is-python2
# The python-pip package no longer exists in new versions of Ubuntu.
RUN curl https://bootstrap.pypa.io/get-pip.py --output get-pip.py
RUN python2 get-pip.py
# 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 pip2 install --upgrade pip
RUN pip2 install virtualenv
RUN pip3 install --upgrade pip
RUN pip3 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