gogs/gogsGogs 项目详情可参考 GitHub 仓库。
为避免数据存放在容器内,建议将数据目录挂载到宿主机(示例中使用 /var/gogs 映射容器内 /data),可根据实际情况调整路径。
sh# 拉取镜像 $ docker pull gogs/gogs # 创建宿主机数据目录 $ mkdir -p /var/gogs # 首次运行容器(端口映射:宿主机***→容器22,宿主机***→容器3000;数据挂载) $ docker run --name=gogs -p ***:22 -p ***:3000 -v /var/gogs:/data gogs/gogs # 若容器已停止,重新启动 $ docker start gogs
注意:
git clone ssh://git@hostname:***/username/myrepo.git。宿主机 /var/gogs 目录存储 Git 仓库和 Gogs 数据,结构如下:
/var/gogs ├── git │ └── gogs-repositories # Git 仓库存储目录 ├── ssh # Gogs SSH 密钥文件 └── gogs # Gogs 配置、数据及日志 ├── conf # 配置文件 ├── data # 应用数据 └── log # 日志文件
Docker 环境下,宿主机 /var/gogs/gogs 目录对应容器内 /data/gogs 目录,此目录即 Gogs 的「custom」目录。无需额外创建层级,直接编辑该目录下的文件即可完成自定义配置。
除本地目录挂载外,也可使用 Docker 卷持久化数据:
sh# 创建 Docker 卷 $ docker volume create --name gogs-data # 首次运行容器(使用卷挂载数据) $ docker run --name=gogs -p ***:22 -p ***:3000 -v gogs-data:/data gogs/gogs
多数配置项直观易懂,以下为 Docker 环境中需特别注意的项:
/home/git/gogs-repositories,start.sh 已自动创建符号链接。git,finalize.sh 已预先配置该用户。192.168.99.100);若需从其他物理机访问,填写宿主机的域名或 IP。***。不推荐在 Docker 容器内使用内置 SSH 服务器。3000)。完整配置文档见 Gogs 官方文档。
可通过环境变量配置容器功能,以下为常用选项:
true/false/1/0true0 或 false),因依赖 Docker 链接容器时生成的环境变量。true/false/1/0false/etc/periodic/${period} 下的脚本,自定义定时任务可添加到 /var/spool/cron/crontabs/。3h(每 3 小时)、7d(每 7 天),最小值为 1h。默认 null(不启用)。360m(6 小时)、2d(2 天),最小值为 60m。默认 7d。gogs backup 的 --config 参数路径,如 /app/gogs/example/custom/config。默认 null。gogs backup 的 --exclude-repos 参数,排除无需备份的仓库,如 test-repo1,test-repo2。默认 null。启用自动备份需同时设置 RUN_CROND=true 和 BACKUP_INTERVAL:
BACKUP_INTERVAL 控制备份频率,BACKUP_RETENTION 控制旧备份自动删除策略。⚠️ 务必确保数据卷已挂载到容器外 ⚠️
docker pull gogs/gogsdocker stop gogsdocker rm gogsalpine 未提供该平台的 go 包。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务