summaryrefslogtreecommitdiffstats
path: root/docker/s6
diff options
context:
space:
mode:
authorJean-Philippe Roemer <roemer.jp@gmail.com>2015-10-02 10:56:36 +0100
committerJean-Philippe Roemer <roemer.jp@gmail.com>2015-10-02 10:56:36 +0100
commite63e0b3105124bd8ec3028a39dc71c8d8ca103e3 (patch)
tree77052948f4410ae26a15720e3b847cabbfc0fd20 /docker/s6
parente0a099ec112e2746ec1f6dcd3276d19e14e50b06 (diff)
downloadgitea-e63e0b3105124bd8ec3028a39dc71c8d8ca103e3.tar.gz
gitea-e63e0b3105124bd8ec3028a39dc71c8d8ca103e3.zip
New approach to Gogs Docker Container
- VOLUME for ‘/data’ - Usage of S6 as PID 1 Process - Usage of ‘socat’ so linked container (like databases) are binded to localhost - OpenSSH, Socat Link and Gogs are supervised using S6 - Size of container reduced to ~75Mo
Diffstat (limited to 'docker/s6')
-rwxr-xr-xdocker/s6/.s6-svscan/finish2
-rwxr-xr-xdocker/s6/gogs/run28
-rwxr-xr-xdocker/s6/openssh/run15
3 files changed, 45 insertions, 0 deletions
diff --git a/docker/s6/.s6-svscan/finish b/docker/s6/.s6-svscan/finish
new file mode 100755
index 0000000000..22665fa9bb
--- /dev/null
+++ b/docker/s6/.s6-svscan/finish
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /bin/true
diff --git a/docker/s6/gogs/run b/docker/s6/gogs/run
new file mode 100755
index 0000000000..a7b4cc55ee
--- /dev/null
+++ b/docker/s6/gogs/run
@@ -0,0 +1,28 @@
+#!/bin/sh
+USER=git
+USERNAME=$USER
+
+if ! test -d /data/gogs; then
+ mkdir -p /data/gogs/data /data/gogs/conf /data/gogs/log /data/git
+fi
+
+if ! test -d ~git/.ssh; then
+ mkdir ~git/.ssh
+ chmod 700 ~git/.ssh
+fi
+
+if ! test -f ~git/.ssh/environment; then
+ echo "GOGS_CUSTOM=/data/gogs" > ~git/.ssh/environment
+ chown git:git ~git/.ssh/environment
+ chown 600 ~git/.ssh/environment
+fi
+
+ln -sf /data/gogs/log /app/gogs/log
+ln -sf /data/gogs/data /app/gogs/data
+ln -sf /data/gogs/conf /app/gogs/conf
+
+chown -R git:git /data /app/gogs ~git/
+
+export USER
+export USERNAME
+exec gosu $USER /app/gogs/gogs web
diff --git a/docker/s6/openssh/run b/docker/s6/openssh/run
new file mode 100755
index 0000000000..891285764a
--- /dev/null
+++ b/docker/s6/openssh/run
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+if ! test -d /data/ssh
+then
+ mkdir -p /data/ssh
+ ssh-keygen -q -f /data/ssh/ssh_host_key -N '' -t rsa1
+ ssh-keygen -q -f /data/ssh/ssh_host_rsa_key -N '' -t rsa
+ ssh-keygen -q -f /data/ssh/ssh_host_dsa_key -N '' -t dsa
+ ssh-keygen -q -f /data/ssh/ssh_host_ecdsa_key -N '' -t ecdsa
+ ssh-keygen -q -f /data/ssh/ssh_host_ed25519_key -N '' -t ed25519
+ chown -R root:root /data/ssh/*
+ chmod 600 /data/ssh/*
+fi
+
+exec gosu root /usr/sbin/sshd -D -f /etc/ssh/sshd_config