2015-08-17 17:08:49 +05:30
# Docker for Gogs
2014-08-29 21:50:15 +05:30
2015-08-18 19:59:02 +05:30
Visit [Docker Hub ](https://hub.docker.com/r/gogs/gogs/ ) see all available tags.
2015-08-17 12:02:11 +05:30
## Usage
2015-08-17 17:08:49 +05:30
2015-08-18 19:59:02 +05:30
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 21:50:15 +05:30
```
2015-08-18 19:59:02 +05:30
# Pull image from Docker Hub.
$ docker pull gogs/gogs
# Create local directory for volume.
$ mkdir -p /var/gogs
2014-08-29 21:50:15 +05:30
2015-08-18 19:59:02 +05:30
# 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.
2015-10-03 02:24:55 +05:30
$ docker start gogs
2014-08-29 21:50:15 +05:30
```
2015-08-18 19:59:02 +05:30
Files will be store in local path `/var/gogs` in my case.
2014-08-29 21:50:15 +05:30
2015-10-14 03:05:17 +05:30
Directory `/var/gogs` keeps Git repositories and Gogs data:
2014-08-29 21:50:15 +05:30
2015-08-17 12:02:11 +05:30
/var/gogs
2015-08-17 12:47:18 +05:30
|-- git
2015-08-18 19:59:02 +05:30
| |-- gogs-repositories
2015-08-17 12:02:11 +05:30
|-- ssh
2015-08-18 19:59:02 +05:30
| |-- # ssh public/private keys for Gogs
|-- gogs
2015-08-17 12:47:18 +05:30
|-- conf
|-- data
|-- log
2014-08-29 21:50:15 +05:30
2015-10-03 01:14:59 +05:30
### 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
```
2015-08-19 18:06:19 +05:30
## Settings
2015-08-17 12:47:18 +05:30
2015-08-19 18:06:19 +05:30
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 12:47:18 +05:30
2015-08-19 18:07:39 +05:30
- **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` .
2015-09-21 20:14:40 +05:30
- **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.
2015-08-19 18:07:39 +05:30
- **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.
2015-08-19 18:11:42 +05:30
- **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.
2015-10-03 02:24:55 +05:30
- **Application URL**: Use combination of **Domain** and **exposed HTTP Port** values(e.g. `http://192.168.99.100:10080/` ).
2015-08-17 12:47:18 +05:30
2015-08-17 17:08:49 +05:30
Full documentation of settings can be found [here ](http://gogs.io/docs/advanced/configuration_cheat_sheet.html ).
2015-08-17 18:42:47 +05:30
2015-09-18 04:48:49 +05:30
## Upgrade
:exclamation::exclamation::exclamation:< span style = "color: red" > **Make sure you have volumed data to somewhere outside Docker container**< / span > :exclamation::exclamation::exclamation:
Steps to upgrade Gogs with Docker:
- `docker pull gogs/gogs`
- `docker stop gogs`
- `docker rm gogs`
2015-10-03 02:24:55 +05:30
- 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