blob: 5c30fa0affc909e7dbf31a6c10e22fbff06030c0 [file] [log] [blame]
FROM ubuntu:20.04
ENV PKG_DEPS="\
apt-transport-https \
ca-certificates \
curl \
git \
gnupg \
lsb-release \
openjdk-11-jre-headless \
openssh-server \
python3 \
python3-venv \
sudo \
unzip \
"
ENV DOCKER_PKG_DEPS="\
containerd.io \
docker-ce \
docker-ce-cli \
"
# Can be overriden at build time
ARG BUILDSLAVE_PASSWORD=buildslave
COPY setup-sshd /usr/sbin/setup-sshd
RUN set -e ;\
echo 'locales locales/locales_to_be_generated multiselect C.UTF-8 UTF-8, en_US.UTF-8 UTF-8 ' | debconf-set-selections ;\
echo 'locales locales/default_environment_locale select en_US.UTF-8' | debconf-set-selections ;\
apt update -q=2 ;\
apt dist-upgrade -q=2 --yes ;\
apt install -q=2 --yes --no-install-recommends ${PKG_DEPS} ;\
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg ;\
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null ;\
apt update -q=2 ;\
apt install -q=2 --yes --no-install-recommends ${DOCKER_PKG_DEPS} ;\
# Setup buildslave user for Jenkins
useradd -m -s /bin/bash buildslave ;\
echo "buildslave:$BUILDSLAVE_PASSWORD" | chpasswd ;\
echo 'buildslave ALL = NOPASSWD: ALL' > /etc/sudoers.d/jenkins ;\
chmod 0440 /etc/sudoers.d/jenkins ;\
usermod -aG docker buildslave ;\
ln -s $(which python3) /usr/bin/python ;\
mkdir -p /var/run/sshd
EXPOSE 22
ENTRYPOINT ["/usr/sbin/setup-sshd"]