Browse Source

Merge pull request #1732 from 0rax/develop

Docker Container: Init 1 & Initialisation
pull/1735/head
无闻 9 years ago
parent
commit
79fb24a397
  1. 8
      .dockerignore
  2. 3
      Dockerfile
  3. 4
      docker/README.md
  4. 24
      docker/s6/gogs/run
  5. 22
      docker/s6/gogs/setup
  6. 12
      docker/s6/openssh/run
  7. 12
      docker/s6/openssh/setup
  8. 8
      docker/start.sh

8
.dockerignore

@ -1,7 +1,15 @@
.git
.git/
.git/*
conf
conf/
conf/*
packager
packager/
packager/*
scripts
scripts/
scripts/*
*.yml
*.md
.bra.toml

3
Dockerfile

@ -18,4 +18,5 @@ RUN ./docker/build.sh
# Configure Docker Container
VOLUME ["/data"]
EXPOSE 22 3000
CMD ["docker/start.sh"]
ENTRYPOINT ["docker/start.sh"]
CMD ["/usr/bin/s6-svscan", "/app/gogs/docker/s6/"]

4
docker/README.md

@ -69,3 +69,7 @@ Steps to upgrade Gogs with Docker:
- `docker stop gogs`
- `docker rm gogs`
- Finally, create container as the first time and don't forget to do same volume and port mapping.
## Known Issues
- `.dockerignore` seems to be ignored during Docker Hub Automated build

24
docker/s6/gogs/run

@ -1,26 +1,8 @@
#!/bin/sh
USER=git
if ! test -d /data/gogs; then
mkdir -p /data/gogs/data /data/gogs/conf /data/gogs/log /data/git
if test -f ./setup; then
source ./setup
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=${GOGS_CUSTOM}" > ~git/.ssh/environment
chmod 600 ~git/.ssh/environment
fi
cd /app/gogs
ln -sf /data/gogs/log ./log
ln -sf /data/gogs/data ./data
chown -R git:git /data /app/gogs ~git/
export USER
export USER=git
exec gosu $USER /app/gogs/gogs web

22
docker/s6/gogs/setup

@ -0,0 +1,22 @@
#!/bin/sh
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=${GOGS_CUSTOM}" > ~git/.ssh/environment
chmod 600 ~git/.ssh/environment
fi
cd /app/gogs
ln -sf /data/gogs/log ./log
ln -sf /data/gogs/data ./data
chown -R git:git /data /app/gogs ~git/

12
docker/s6/openssh/run

@ -1,15 +1,7 @@
#!/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/*
if test -f ./setup; then
source ./setup
fi
exec gosu root /usr/sbin/sshd -D -f /app/gogs/docker/sshd_config

12
docker/s6/openssh/setup

@ -0,0 +1,12 @@
#!/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

8
docker/start.sh

@ -8,5 +8,9 @@ while read NAME CMD; do
chmod +x /app/gogs/docker/s6/$NAME/run
done
# Exec S6 as process manager for gogs and dropbear ssh
exec /usr/bin/s6-svscan /app/gogs/docker/s6/
# Exec CMD or S6 by default if nothing present
if [ $# -gt 0 ];then
exec "$@"
else
exec /usr/bin/s6-svscan /app/gogs/docker/s6/
fi

Loading…
Cancel
Save