| 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"] |