FROM golang:1.20.5-bullseye # Install `openssh-server` and other dependencies RUN apt update \ && apt upgrade -y \ && apt install openssh-server sudo curl git wget software-properties-common apt-transport-https --yes \ && rm -rf /var/lib/apt/lists/* # Permit empty passwords RUN sed -i 's/nullok_secure/nullok/' /etc/pam.d/common-auth RUN echo "PermitEmptyPasswords yes" >> /etc/ssh/sshd_config # Generate a workspace host key RUN ssh-keygen -A RUN chmod 775 /etc/ssh/ssh_host_rsa_key && \ chmod 775 /etc/ssh/ssh_host_ecdsa_key && \ chmod 775 /etc/ssh/ssh_host_ed25519_key # Create a `gitlab-workspaces` user RUN useradd -l -u 5001 -G sudo -md /home/gitlab-workspaces -s /bin/bash gitlab-workspaces RUN passwd -d gitlab-workspaces ENV HOME=/home/gitlab-workspaces WORKDIR $HOME RUN mkdir -p /home/gitlab-workspaces && chgrp -R 0 /home && chmod -R g=u /etc/passwd /etc/group /home # Allow sign-in access to `/etc/shadow` RUN chmod 775 /etc/shadow USER gitlab-workspaces