Leonardo Sandoval | 4cb535c | 2022-01-04 12:07:31 -0600 | [diff] [blame] | 1 | FROM ubuntu:20.04 |
| 2 | |
| 3 | ENV PKG_DEPS="\ |
| 4 | apt-transport-https \ |
| 5 | ca-certificates \ |
| 6 | curl \ |
| 7 | git \ |
| 8 | gnupg \ |
| 9 | lsb-release \ |
| 10 | openjdk-8-jre-headless \ |
Leonardo Sandoval | 36c74e2 | 2022-01-05 11:26:55 -0600 | [diff] [blame] | 11 | openssh-server \ |
Leonardo Sandoval | 4cb535c | 2022-01-04 12:07:31 -0600 | [diff] [blame] | 12 | python3 \ |
| 13 | python3-venv \ |
| 14 | sudo \ |
| 15 | unzip \ |
| 16 | " |
| 17 | |
| 18 | ENV DOCKER_PKG_DEPS="\ |
| 19 | containerd.io \ |
| 20 | docker-ce \ |
| 21 | docker-ce-cli \ |
| 22 | " |
| 23 | |
| 24 | # Can be overriden at build time |
| 25 | ARG BUILDSLAVE_PASSWORD=buildslave |
| 26 | |
Leonardo Sandoval | 36c74e2 | 2022-01-05 11:26:55 -0600 | [diff] [blame] | 27 | COPY setup-sshd /usr/sbin/setup-sshd |
| 28 | |
Leonardo Sandoval | 4cb535c | 2022-01-04 12:07:31 -0600 | [diff] [blame] | 29 | RUN set -e ;\ |
Leonardo Sandoval | 36c74e2 | 2022-01-05 11:26:55 -0600 | [diff] [blame] | 30 | echo 'locales locales/locales_to_be_generated multiselect C.UTF-8 UTF-8, en_US.UTF-8 UTF-8 ' | debconf-set-selections ;\ |
| 31 | echo 'locales locales/default_environment_locale select en_US.UTF-8' | debconf-set-selections ;\ |
| 32 | apt update -q=2 ;\ |
| 33 | apt dist-upgrade -q=2 --yes ;\ |
| 34 | apt install -q=2 --yes --no-install-recommends ${PKG_DEPS} ;\ |
Leonardo Sandoval | 4cb535c | 2022-01-04 12:07:31 -0600 | [diff] [blame] | 35 | curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg ;\ |
| 36 | echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ |
| 37 | $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null ;\ |
Leonardo Sandoval | 36c74e2 | 2022-01-05 11:26:55 -0600 | [diff] [blame] | 38 | apt update -q=2 ;\ |
| 39 | apt install -q=2 --yes --no-install-recommends ${DOCKER_PKG_DEPS} ;\ |
Leonardo Sandoval | 4cb535c | 2022-01-04 12:07:31 -0600 | [diff] [blame] | 40 | # Setup buildslave user for Jenkins |
| 41 | useradd -m -s /bin/bash buildslave ;\ |
| 42 | echo "buildslave:$BUILDSLAVE_PASSWORD" | chpasswd ;\ |
| 43 | echo 'buildslave ALL = NOPASSWD: ALL' > /etc/sudoers.d/jenkins ;\ |
| 44 | chmod 0440 /etc/sudoers.d/jenkins ;\ |
Leonardo Sandoval | 4cb535c | 2022-01-04 12:07:31 -0600 | [diff] [blame] | 45 | usermod -aG docker buildslave ;\ |
Arthur She | 3629b22 | 2022-01-05 22:05:29 -0800 | [diff] [blame] | 46 | ln -s $(which python3) /usr/bin/python ;\ |
Arthur She | c8e715e | 2022-01-08 22:26:30 -0800 | [diff] [blame^] | 47 | mkdir -p /var/run/sshd |
Leonardo Sandoval | 36c74e2 | 2022-01-05 11:26:55 -0600 | [diff] [blame] | 48 | |
| 49 | EXPOSE 22 |
| 50 | ENTRYPOINT ["/usr/sbin/setup-sshd"] |