112 lines
2.4 KiB
Docker
112 lines
2.4 KiB
Docker
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 icecat 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 \
|
|
icecat \
|
|
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
|