Baptiste Covolato 8366bd1cbe Update Dockerfiles for ARM to use alpine golang (#6183) | 4 tahun lalu | |
---|---|---|
.. | ||
runtime | 4 tahun lalu | |
s6 | 4 tahun lalu | |
Dockerfile.aarch64 | 4 tahun lalu | |
Dockerfile.rpi | 4 tahun lalu | |
README.md | 4 tahun lalu | |
finalize.sh | 4 tahun lalu | |
nsswitch.conf | 8 tahun lalu | |
sshd_config | 5 tahun lalu | |
start.sh | 4 tahun lalu |
Visit Docker Hub see all available images and tags.
ℹ️ Please use gogs/gogs-rpi
if you're using Raspberry Pis!
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
Note: It is important to map the Gogs ssh service from the container to the host and set the appropriate SSH Port and URI settings when setting up Gogs for the first time. To access and clone Gogs Git repositories with the above configuration you would use: git clone ssh://git@hostname:10022/username/myrepo.git
for example.
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
The "custom" directory may not be obvious in Docker environment. The /var/gogs/gogs
(in the host) and /data/gogs
(in the container) is already the "custom" directory and you do not need to create another layer but directly edit corresponding files under this directory.
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
# Create docker volume.
$ docker volume create --name gogs-data
# Use `docker run` for the first time.
$ docker run --name=gogs -p 10022:22 -p 10080:3000 -v gogs-data:/data gogs/gogs
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 finalize.sh
already setup a user with name git
.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.22
inside Docker, but you expose it by 10022:22
, then use 10022
for this value. Builtin SSH server is not recommended inside Docker Container3000
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 application settings can be found here.
This container have some options available via environment variables, these options are opt-in features that can help the administration of this container:
true
, false
, 1
, 0
true
0
or false
)true
, false
, 1
, 0
false
/etc/periodic/${period}
but custom crontabs can be added to /var/spool/cron/crontabs/
.3h
, 7d
, 3M
null
RUN_CROND
set to true
, enables backup system.\
See: Backup System360m
, 7d
, ...m/d
7d
/app/gogs/example/custom/config
null
--config
argument to gogs backup
.\
See: Backup Systemtest-repo1
, test-repo2
null
--exclude-repos
argument to gogs backup
.\
See: Backup SystemAutomated backups with retention policy:
BACKUP_INTERVAL
controls how often the backup job runs and supports interval in hours (h), days (d), and months (M), eg. 3h
, 7d
, 3M
. The lowest possible value is one hour (1h
).BACKUP_RETENTION
supports expressions in minutes (m) and days (d), eg. 360m
, 2d
. The lowest possible value is 60 minutes (60m
).: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
alpine
does not have a go
package available for this platform.