summaryrefslogtreecommitdiff
path: root/Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to 'Dockerfile')
-rw-r--r--Dockerfile32
1 files changed, 28 insertions, 4 deletions
diff --git a/Dockerfile b/Dockerfile
index c310452..ecb4743 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -40,13 +40,37 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
python3-pygments \
tini \
curl \
+ openssh-server \
+ locales \
&& rm -rf /var/lib/apt/lists/*
+# Generate locale to fix git locale warnings
+RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen
+
COPY --from=build_stage /var/www/html/cgit /var/www/html/cgit
-RUN mkdir -p /var/lib/git/repositories \
- && chown -R www-data:www-data /var/www/html/cgit \
- && chown -R www-data:www-data /var/lib/git
+RUN mkdir -p /var/lib/git/repositories
+
+RUN useradd -m -d /var/lib/git/repositories -s /usr/bin/git-shell code
+
+# Store git-shell-commands in a persistent location (will be copied to home on startup)
+RUN mkdir -p /usr/local/share/git-shell-commands
+COPY init-repo /usr/local/share/git-shell-commands/init-repo
+COPY delete-repo /usr/local/share/git-shell-commands/delete-repo
+COPY help /usr/local/share/git-shell-commands/help
+COPY list /usr/local/share/git-shell-commands/list
+COPY no-interactive-login /usr/local/share/git-shell-commands/no-interactive-login
+RUN chmod +x /usr/local/share/git-shell-commands/*
+
+RUN mkdir -p /run/sshd \
+ && mkdir -p /etc/ssh/sshd_config.d
+
+COPY sshd_code_user.conf /etc/ssh/sshd_config.d/code_user.conf
+
+RUN chown -R www-data:www-data /var/www/html/cgit \
+ && chown -R code:code /var/lib/git/repositories \
+ && chmod 755 /var/lib/git \
+ && chmod 755 /var/lib/git/repositories
RUN rm /etc/nginx/sites-enabled/default
@@ -63,6 +87,6 @@ RUN chown -R www-data:www-data /run/sock
COPY static /var/www/html/cgit/static
-EXPOSE 80
+EXPOSE 80 22
HEALTHCHECK CMD ["curl", "http://localhost:80"]
ENTRYPOINT ["/usr/bin/tini", "--", "/usr/local/bin/entrypoint.sh"]