forked from forgejo/forgejo
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
This commit is contained in:
parent
e0a099ec11
commit
e63e0b3105
8 changed files with 115 additions and 90 deletions
2
docker/s6/.s6-svscan/finish
Executable file
2
docker/s6/.s6-svscan/finish
Executable file
|
@ -0,0 +1,2 @@
|
|||
#!/bin/sh
|
||||
exec /bin/true
|
28
docker/s6/gogs/run
Executable file
28
docker/s6/gogs/run
Executable file
|
@ -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
|
15
docker/s6/openssh/run
Executable file
15
docker/s6/openssh/run
Executable file
|
@ -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
|
Loading…
Add table
Add a link
Reference in a new issue