# https://gitolite.com/gitolite/index.html
# https://github.com/sitaramc/gitolite
# https://wiki.archlinux.org/title/Gitolite
FROM archlinux
# The gitolite package implies git, openssh, and creates the host user
RUN pacman-key --init
RUN pacman -Syu --needed --noconfirm gitolite
# Initialize the gitolite datastore
COPY . /app
RUN if [ -f "/app/admin.pub" ]; \
then runuser -u gitolite -- /app/gitolite_init.sh "/app/admin.pub"; fi
VOLUME /var/lib/gitolite
# sshd host keys are stored in a volume so that rebuilding/updating the
# image doesn't break user trust
COPY sshd_config /etc/ssh/
RUN mkdir -p /hostkeys/etc/ssh/
RUN ssh-keygen -A -f /hostkeys
VOLUME /hostkeys
EXPOSE 22
CMD ["/usr/bin/sshd", "-D"]