Docker Container: Init 1 & Initialisationmaster
@@ -1,7 +1,15 @@ | |||||
.git | .git | ||||
.git/ | |||||
.git/* | |||||
conf | conf | ||||
conf/ | |||||
conf/* | |||||
packager | packager | ||||
packager/ | |||||
packager/* | |||||
scripts | scripts | ||||
scripts/ | |||||
scripts/* | |||||
*.yml | *.yml | ||||
*.md | *.md | ||||
.bra.toml | .bra.toml | ||||
@@ -18,4 +18,5 @@ RUN ./docker/build.sh | |||||
# Configure Docker Container | # Configure Docker Container | ||||
VOLUME ["/data"] | VOLUME ["/data"] | ||||
EXPOSE 22 3000 | EXPOSE 22 3000 | ||||
CMD ["docker/start.sh"] | |||||
ENTRYPOINT ["docker/start.sh"] | |||||
CMD ["/usr/bin/s6-svscan", "/app/gogs/docker/s6/"] |
@@ -17,7 +17,7 @@ $ mkdir -p /var/gogs | |||||
$ docker run --name=gogs -p 10022:22 -p 10080:3000 -v /var/gogs:/data gogs/gogs | $ docker run --name=gogs -p 10022:22 -p 10080:3000 -v /var/gogs:/data gogs/gogs | ||||
# Use `docker start` if you have stopped it. | # Use `docker start` if you have stopped it. | ||||
$ docker start gogs | |||||
$ docker start gogs | |||||
``` | ``` | ||||
Files will be store in local path `/var/gogs` in my case. | Files will be store in local path `/var/gogs` in my case. | ||||
@@ -55,7 +55,7 @@ Most of settings are obvious and easy to understand, but there are some settings | |||||
- **Domain**: fill in with Docker container IP(e.g. `192.168.99.100`). But if you want to access your Gogs instance from a different physical machine, please fill in with the hostname or IP address of the Docker host machine. | - **Domain**: fill in with Docker container IP(e.g. `192.168.99.100`). But if you want to access your Gogs instance from a different physical machine, please fill in with the hostname or IP address of the Docker host machine. | ||||
- **SSH Port**: Use the exposed port from Docker container. For example, your SSH server listens on `22` inside Docker, but you expose it by `10022:22`, then use `10022` for this value. | - **SSH Port**: Use the exposed port from Docker container. For example, your SSH server listens on `22` inside Docker, but you expose it by `10022:22`, then use `10022` for this value. | ||||
- **HTTP Port**: Use port you want Gogs to listen on inside Docker container. For example, your Gogs listens on `3000` inside Docker, and you expose it by `10080:3000`, but you still use `3000` for this value. | - **HTTP Port**: Use port you want Gogs to listen on inside Docker container. For example, your Gogs listens on `3000` inside Docker, and you expose it by `10080:3000`, but you still use `3000` for this value. | ||||
- **Application URL**: Use combination of **Domain** and **exposed HTTP Port** values(e.g. `http://192.168.99.100:10080/`). | |||||
- **Application URL**: Use combination of **Domain** and **exposed HTTP Port** values(e.g. `http://192.168.99.100:10080/`). | |||||
Full documentation of settings can be found [here](http://gogs.io/docs/advanced/configuration_cheat_sheet.html). | Full documentation of settings can be found [here](http://gogs.io/docs/advanced/configuration_cheat_sheet.html). | ||||
@@ -68,4 +68,8 @@ Steps to upgrade Gogs with Docker: | |||||
- `docker pull gogs/gogs` | - `docker pull gogs/gogs` | ||||
- `docker stop gogs` | - `docker stop gogs` | ||||
- `docker rm gogs` | - `docker rm gogs` | ||||
- Finally, create container as the first time and don't forget to do same volume and port mapping. | |||||
- 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 |
@@ -1,26 +1,8 @@ | |||||
#!/bin/sh | #!/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 | 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 | exec gosu $USER /app/gogs/gogs web |
@@ -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/ |
@@ -1,15 +1,7 @@ | |||||
#!/bin/sh | #!/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 | fi | ||||
exec gosu root /usr/sbin/sshd -D -f /app/gogs/docker/sshd_config | exec gosu root /usr/sbin/sshd -D -f /app/gogs/docker/sshd_config |
@@ -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,5 +8,9 @@ while read NAME CMD; do | |||||
chmod +x /app/gogs/docker/s6/$NAME/run | chmod +x /app/gogs/docker/s6/$NAME/run | ||||
done | 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 |