Browse Source

Adapted for OpenShift (cron, syslog, and ssh services are not running)

Suren A. Chilingaryan 4 years ago
commit
edf770e69b
4 changed files with 44 additions and 0 deletions
  1. 14 0
      Dockerfile
  2. 20 0
      root/entrypoint
  3. 7 0
      root/usr/bin/fix-permissions
  4. 3 0
      root/usr/bin/rungogs

+ 14 - 0
Dockerfile

@@ -0,0 +1,14 @@
+FROM gogs/gogs:latest
+
+MAINTAINER Suren A. Chilingaryan <csa@suren.me>
+
+COPY ./root /
+
+RUN mkdir -p /data/gogs/data /data/gogs/conf /data/gogs/log /data/git /data/ssh && \
+    /usr/bin/fix-permissions /data && \
+    ln -sfn /data/gogs/log  /app/gogs/log && \
+    ln -sfn /data/gogs/data /app/gogs/data && \
+    /usr/bin/fix-permissions /etc/passwd
+
+ENTRYPOINT ["/entrypoint"]
+CMD ["/usr/bin/rungogs"]

+ 20 - 0
root/entrypoint

@@ -0,0 +1,20 @@
+#! /bin/sh
+
+export USER=git
+export HOME=/data
+export USER_ID=$(id -u)
+export GROUP_ID=$(id -g)
+
+grep -v ^git /etc/passwd > "$HOME/passwd"
+echo "git:x:${USER_ID}:${GROUP_ID}:gogs.io user:${HOME}:/bin/bash" >> "$HOME/passwd"
+cat "$HOME/passwd" > /etc/passwd
+
+#No nss_wrapper in Alpine Linux yet
+#export LD_PRELOAD=libnss_wrapper.so
+#export NSS_WRAPPER_PASSWD=${HOME}/passwd
+#export NSS_WRAPPER_GROUP=/etc/group
+#export PORT=3000
+
+mkdir -p /data/gogs/data /data/gogs/conf /data/gogs/log /data/git /data/ssh
+
+exec "$@"

+ 7 - 0
root/usr/bin/fix-permissions

@@ -0,0 +1,7 @@
+#!/bin/sh
+# Fix permissions on the given directory to allow group read/write of
+# regular files and execute of directories.
+chown -R git "$1"
+chgrp -R 0 "$1"
+chmod -R g+rw "$1"
+find "$1" -type d -exec chmod g+x {} +

+ 3 - 0
root/usr/bin/rungogs

@@ -0,0 +1,3 @@
+#! /bin/sh
+
+/app/gogs/gogs web