Source code

Revision control

Copy as Markdown

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 \
fonts-noto \
fluxbox \
gdebi \
git \
glib-networking-services \
gstreamer1.0-plugins-bad \
gstreamer1.0-gl \
libosmesa6-dev \
libproxy1-plugin-webkit \
libvirt-daemon-system \
libvirt-clients \
libunwind8 \
libxcb-shape0-dev \
locales \
openjdk-17-jre-headless \
pulseaudio \
python3 \
python3-dev \
python3-pip \
python3-venv \
software-properties-common \
qemu-kvm \
tzdata \
sudo \
unzip \
wget \
xvfb
# Ensure all Python versions are available
RUN apt-add-repository -y ppa:deadsnakes/ppa
# Ensure a `python` binary exists
RUN apt-get -qqy update \
&& apt-get install -qqy python-is-python3
# 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
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 kvm 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