- Now using a setup script before starting the app. The separation of the run script and the setup script will make service initialisation a little bit clearer - Now calling start.sh script as ENTRYPOINT and S6 as CMD. This way when running the container with just a shell script, the start.sh script will be launched before, making debugging easier - Added note about `.dockerignore` ignored during Docker Hub Automated Build
|8 years ago|
|s6||8 years ago|
|README.md||8 years ago|
|build.sh||8 years ago|
|sshd_config||8 years ago|
|start.sh||8 years ago|
Docker for Gogs
Visit Docker Hub see all available tags.
To keep your data out of Docker container, we do a volume(
/data) here, and you can change it based on your situation.
# Pull image from Docker Hub. $ docker pull gogs/gogs # Create local directory for volume. $ mkdir -p /var/gogs # Use `docker run` for the first time. $ docker run --name=gogs -p 10022:22 -p 10080:3000 -v /var/gogs:/data gogs/gogs # Use `docker start` if you have stopped it. $ docker start gogs
Files will be store in local path
/var/gogs in my case.
/var/gogs keeps Git repoistories and Gogs data:
/var/gogs |-- git | |-- gogs-repositories |-- ssh | |-- # ssh public/private keys for Gogs |-- gogs |-- conf |-- data |-- log |-- templates
Volume with data container
If you're more comfortable with mounting data to a data container, the commands you execute at the first time will look like as follows:
# Create data container docker run --name=gogs-data --entrypoint /bin/true gogs/gogs # Use `docker run` for the first time. docker run --name=gogs --volumes-from gogs-data -p 10022:22 -p 10080:3000 gogs/gogs
Most of settings are obvious and easy to understand, but there are some settings can be confusing by running Gogs inside Docker:
- Repository Root Path: keep it as default value
start.shalready made a symbolic link for you.
- Run User: keep it as default value
start.shalready setup a user with name
- 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
22inside Docker, but you expose it by
10022:22, then use
10022for this value.
- HTTP Port: Use port you want Gogs to listen on inside Docker container. For example, your Gogs listens on
3000inside Docker, and you expose it by
10080:3000, but you still use
3000for this value.
- Application URL: Use combination of Domain and exposed HTTP Port values(e.g.
Full documentation of settings can be found here.
❗❗❗Make sure you have volumed data to somewhere outside Docker container❗❗❗
Steps to upgrade Gogs with Docker:
docker pull gogs/gogs
docker stop gogs
docker rm gogs
- Finally, create container as the first time and don't forget to do same volume and port mapping.
- Use ctrl+c when clone through SSH makes Docker exit unexpectedly
.dockerignoreseems to be ignored during Docker Hub Automated build