You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

README.md 2.9 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. # Docker for Gogs
  2. Visit [Docker Hub](https://hub.docker.com/r/gogs/gogs/) see all available tags.
  3. ## Usage
  4. 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.
  5. ```
  6. # Pull image from Docker Hub.
  7. $ docker pull gogs/gogs
  8. # Create local directory for volume.
  9. $ mkdir -p /var/gogs
  10. # Use `docker run` for the first time.
  11. $ docker run --name=gogs -p 10022:22 -p 10080:3000 -v /var/gogs:/data gogs/gogs
  12. # Use `docker start` if you have stopped it.
  13. $ docker start gogs
  14. ```
  15. Files will be store in local path `/var/gogs` in my case.
  16. Directory `/var/gogs` keeps Git repoistories and Gogs data:
  17. /var/gogs
  18. |-- git
  19. | |-- gogs-repositories
  20. |-- ssh
  21. | |-- # ssh public/private keys for Gogs
  22. |-- gogs
  23. |-- conf
  24. |-- data
  25. |-- log
  26. |-- templates
  27. ## Settings
  28. Most of settings are obvious and easy to understand, but there are some settings can be confusing by running Gogs inside Docker:
  29. - **Repository Root Path**: keep it as default value `/home/git/gogs-repositories` because `start.sh` already made a symbolic link for you.
  30. - **Run User**: keep it as default value `git` because `start.sh` already setup a user with name `git`.
  31. - **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.
  32. - **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.
  33. - **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.
  34. - **Application URL**: Use combination of **Domain** and **exposed HTTP Port** values(e.g. `http://192.168.99.100:10080/`).
  35. Full documentation of settings can be found [here](http://gogs.io/docs/advanced/configuration_cheat_sheet.html).
  36. ## Upgrade
  37. :exclamation::exclamation::exclamation:<span style="color: red">**Make sure you have volumed data to somewhere outside Docker container**</span>:exclamation::exclamation::exclamation:
  38. Steps to upgrade Gogs with Docker:
  39. - `docker pull gogs/gogs`
  40. - `docker stop gogs`
  41. - `docker rm gogs`
  42. - Finally, create container as the first time and don't forget to do same volume and port mapping.
  43. ## Troubleshooting
  44. If you see the following error:
  45. ```
  46. checkVersion()] [E] Binary and template file version does not match
  47. ```
  48. Run `rm -fr /var/gogs/gogs/templates/` should fix this it. Just remember to backup templates file if you have made modifications youself.
  49. ## Known Issues
  50. - [Use ctrl+c when clone through SSH makes Docker exit unexpectedly](https://github.com/gogits/gogs/issues/1499)