FROM alpine:3.23.3 # Install OpenSSH server and Gitolite # Unlock the automatically-created git user RUN set -x \ && apk add --no-cache openrc fail2ban gitolite openssh RUN apk update && apk update RUN rc-update add fail2ban RUN git config --system advice.defaultBranchName false # Volume used to store SSH host keys, generated on first run VOLUME /etc/ssh/keys # Volume used to store all Gitolite data (keys, config and repositories), initialized on first run VOLUME /var/lib/git # Entrypoint responsible for SSH host keys generation, and Gitolite data initialization COPY docker-entrypoint.sh / RUN chmod +x /docker-entrypoint.sh ENTRYPOINT ["/docker-entrypoint.sh"] # Expose port 22 to access SSH EXPOSE 22 # Default command is to run the SSH server CMD ["sshd"]