summaryrefslogtreecommitdiff
path: root/f3s/git-server/docker-image/Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to 'f3s/git-server/docker-image/Dockerfile')
-rw-r--r--f3s/git-server/docker-image/Dockerfile16
1 files changed, 10 insertions, 6 deletions
diff --git a/f3s/git-server/docker-image/Dockerfile b/f3s/git-server/docker-image/Dockerfile
index 382ad0d..574a94b 100644
--- a/f3s/git-server/docker-image/Dockerfile
+++ b/f3s/git-server/docker-image/Dockerfile
@@ -9,15 +9,19 @@ RUN adduser -D -u 1000 -s /usr/bin/git-shell git && \
mkdir -p /home/git/.ssh /repos && \
chown -R git:git /home/git /repos
-# Generate SSH host keys
-# These will be regenerated if not persisted via volume mount
-RUN ssh-keygen -A
-
# Copy sshd configuration
COPY sshd_config /etc/ssh/sshd_config
+# Create entrypoint script to generate host keys at runtime
+RUN echo '#!/bin/sh' > /entrypoint.sh && \
+ echo 'if [ ! -f /etc/ssh/ssh_host_ed25519_key ]; then' >> /entrypoint.sh && \
+ echo ' ssh-keygen -A' >> /entrypoint.sh && \
+ echo 'fi' >> /entrypoint.sh && \
+ echo 'exec /usr/sbin/sshd -D -e' >> /entrypoint.sh && \
+ chmod +x /entrypoint.sh
+
# Expose SSH port
EXPOSE 22
-# Run SSH daemon in foreground with error logging to stderr
-CMD ["/usr/sbin/sshd", "-D", "-e"]
+# Run entrypoint script
+CMD ["/entrypoint.sh"]