Visit Docker Hub see all available tags.
To keep your data out of Docker container, we do a volume(/var/gogs
-> /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.
Directory /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
Most of settings are obvious and easy to understand, but there are some settings can be confusing by running Gogs inside Docker:
/home/git/gogs-repositories
because start.sh
already made a symbolic link for you.git
because start.sh
already setup a user with name git
.192.168.99.100
).22
inside Docker, but you expose it by 10022:22
, then use 10022
for this value.3000
inside Docker, and you expose it by 10080:3000
, but you still use 3000
for this value.http://192.168.99.100:10080/
).Full documentation of settings can be found here.
If you see the following error:
checkVersion()] [E] Binary and template file version does not match
Run rm -fr /var/gogs/gogs/templates/
should fix this it. Just remember to backup templates file if you have made modifications youself.