2015-08-17 07:38:49 -04:00
# Docker for Gogs
2014-08-29 12:20:15 -04:00
2015-08-18 10:29:02 -04:00
Visit [Docker Hub ](https://hub.docker.com/r/gogs/gogs/ ) see all available tags.
2015-08-17 02:32:11 -04:00
## Usage
2015-08-17 07:38:49 -04:00
2015-08-18 10:29:02 -04:00
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.
2014-08-29 12:20:15 -04:00
```
2015-08-18 10:29:02 -04:00
# Pull image from Docker Hub.
$ docker pull gogs/gogs
# Create local directory for volume.
$ mkdir -p /var/gogs
2014-08-29 12:20:15 -04:00
2015-08-18 10:29:02 -04:00
# 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
2014-08-29 12:20:15 -04:00
```
2015-08-18 10:29:02 -04:00
Files will be store in local path `/var/gogs` in my case.
2014-08-29 12:20:15 -04:00
2015-08-17 07:38:49 -04:00
Directory `/var/gogs` keeps Git repoistories and Gogs data:
2014-08-29 12:20:15 -04:00
2015-08-17 02:32:11 -04:00
/var/gogs
2015-08-17 03:17:18 -04:00
|-- git
2015-08-18 10:29:02 -04:00
| |-- gogs-repositories
2015-08-17 02:32:11 -04:00
|-- ssh
2015-08-18 10:29:02 -04:00
| |-- # ssh public/private keys for Gogs
|-- gogs
2015-08-17 03:17:18 -04:00
|-- conf
|-- data
|-- log
2015-08-18 10:29:02 -04:00
|-- templates
2014-08-29 12:20:15 -04:00
2015-08-19 08:36:19 -04:00
## Settings
2015-08-17 03:17:18 -04:00
2015-08-19 08:36:19 -04:00
Most of settings are obvious and easy to understand, but there are some settings can be confusing by running Gogs inside Docker:
2015-08-17 03:17:18 -04:00
2015-08-19 08:37:39 -04:00
- **Repository Root Path**: keep it as default value `/home/git/gogs-repositories` because `start.sh` already made a symbolic link for you.
- **Run User**: keep it as default value `git` because `start.sh` already setup a user with name `git` .
- **Domain**: fill in with Docker container IP(e.g. `192.168.99.100` ).
- **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 the exposed port from Docker container. For example, your Gogs listens on `3000` inside Docker, but you expose it by `10080:3000` , then use `10080` for this value.
- **Application URL**: Use combination of **Domain** and **HTTP Port** values(e.g. `http://192.168.99.100:10080/` ).
2015-08-17 03:17:18 -04:00
2015-08-17 07:38:49 -04:00
Full documentation of settings can be found [here ](http://gogs.io/docs/advanced/configuration_cheat_sheet.html ).
2015-08-17 09:12:47 -04:00
2015-08-18 10:29:02 -04:00
## Troubleshooting
2015-08-17 09:12:47 -04:00
2015-08-18 10:29:02 -04:00
If you see the following error:
2015-08-17 09:12:47 -04:00
```
checkVersion()] [E] Binary and template file version does not match
```
2015-08-18 12:34:11 -04:00
Run `rm -fr /var/gogs/gogs/templates/` should fix this it. Just remember to backup templates file if you have made modifications youself.
## Known Issues
- [Use ctrl+c when clone through SSH makes Docker exit unexpectedly ](https://github.com/gogits/gogs/issues/1499 )