Unknwon e538ff2770 fix #1829 and fix #890 8 년 전
..
s6 9a8aeef478 Add syslog & fix `/data/git` rights & SOCAT_LINK env var 8 년 전
README.md e538ff2770 fix #1829 and fix #890 8 년 전
build.sh 3deddabfd8 Add `set -x` & `set -e` to docker/build.sh for better debugging 8 년 전
sshd_config e63e0b3105 New approach to Gogs Docker Container 8 년 전
start.sh 0cbf56855a Update s6 path following package update 8 년 전

README.md

Docker for Gogs

Visit Docker Hub see all available tags.

Usage

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 repositories and Gogs data:

/var/gogs
|-- git
|   |-- gogs-repositories
|-- ssh
|   |-- # ssh public/private keys for Gogs
|-- gogs
    |-- conf
    |-- data
    |-- log

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

Settings

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 /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). 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.
  • 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/).

Full documentation of settings can be found here.

Upgrade

:exclamation::exclamation::exclamation:Make sure you have volumed data to somewhere outside Docker container:exclamation::exclamation::exclamation:

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.

Known Issues

  • .dockerignore seems to be ignored during Docker Hub Automated build
PANIC: session(release): write data/sessions/e/7/e70136c9972af7a3: no space left on device

PANIC

session(release): write data/sessions/e/7/e70136c9972af7a3: no space left on device
github.com/go-macaron/session@v0.0.0-20190805070824-1a3cdc6f5659/session.go:199 (0x8b2934)
gopkg.in/macaron.v1@v1.3.9/context.go:79 (0x83d0a0)
github.com/go-macaron/inject@v0.0.0-20160627170012-d8a0b8677191/inject.go:157 (0x80ab07)
github.com/go-macaron/inject@v0.0.0-20160627170012-d8a0b8677191/inject.go:135 (0x80a8a8)
gopkg.in/macaron.v1@v1.3.9/context.go:121 (0x83d1f8)
gopkg.in/macaron.v1@v1.3.9/context.go:112 (0x84fdb5)
gopkg.in/macaron.v1@v1.3.9/recovery.go:161 (0x84fda8)
gopkg.in/macaron.v1@v1.3.9/logger.go:40 (0x840c73)
github.com/go-macaron/inject@v0.0.0-20160627170012-d8a0b8677191/inject.go:157 (0x80ab07)
github.com/go-macaron/inject@v0.0.0-20160627170012-d8a0b8677191/inject.go:135 (0x80a8a8)
gopkg.in/macaron.v1@v1.3.9/context.go:121 (0x83d1f8)
gopkg.in/macaron.v1@v1.3.9/router.go:187 (0x850fc6)
gopkg.in/macaron.v1@v1.3.9/router.go:303 (0x8493e5)
gopkg.in/macaron.v1@v1.3.9/macaron.go:220 (0x841fca)
net/http/server.go:2836 (0x7a79b2)
net/http/server.go:1924 (0x7a341b)
runtime/asm_amd64.s:1373 (0x46f9f0)