blob: a9162559ab87641da1c49f9f4b5bbb9af01074c8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
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
|