
bitriory/gogsGogs Docker镜像是Gogs(一款轻量级Git服务)的非官方容器化部署方案,旨在简化Gogs的安装与运维流程。通过Docker容器,用户可快速搭建功能完整的Git服务,支持代码仓库管理、用户权限控制、Issue跟踪等核心功能,且数据可持久化存储在容器外部,确保服务升级或迁移时数据不丢失。
shdocker pull gogs/gogs
shmkdir -p /var/gogs
shdocker run --name=gogs -p ***:22 -p ***:3000 -v /var/gogs:/data gogs/gogs
-p ***:22:将容器内SSH服务端口22映射到宿主机***端口-p ***:3000:将容器内HTTP服务端口3000映射到宿主机***端口-v /var/gogs:/data:将宿主机/var/gogs目录挂载到容器/data目录,用于数据持久化shdocker start gogs
注意:首次配置Gogs时,需正确设置SSH端口和URI。使用上述配置克隆仓库的示例命令:
git clone ssh://git@hostname:***/username/myrepo.git
宿主机/var/gogs目录包含以下内容:
/var/gogs ├── git │ └── gogs-repositories # Git仓库存储目录 ├── ssh │ └── # Gogs SSH密钥文件 └── gogs ├── conf # 配置文件目录 ├── data # 应用数据目录 └── log # 日志文件目录
shdocker run --name=gogs-data --entrypoint /bin/true gogs/gogs
shdocker run --name=gogs --volumes-from gogs-data -p ***:22 -p ***:3000 gogs/gogs
shdocker volume create --name gogs-data
shdocker run --name=gogs -p ***:22 -p ***:3000 -v gogs-data:/data gogs/gogs
首次访问Gogs Web界面时需完成初始配置,以下为Docker环境下的关键配置项说明:
| 配置项 | 说明 |
|---|---|
| 仓库根路径 | 保持默认值/home/git/gogs-repositories,start.sh已创建符号链接 |
| 运行用户 | 保持默认值git,build.sh已预配置该用户 |
| 域名 | 填写Docker容器IP(如192.168.99.100);跨机器访问时填写宿主机IP/域名 |
| SSH端口 | 使用宿主机映射的端口(如容器内22端口映射到宿主机***,则填写***) |
| HTTP端口 | 使用容器内端口(如容器内3000端口映射到宿主机***,仍填写3000) |
| 应用URL | 组合域名和宿主机HTTP映射端口(如[***]) |
完整配置说明参见Gogs配置手册
| 环境变量 | 可能值 | 默认值 | 作用说明 |
|---|---|---|---|
| SOCAT_LINK | true/false/1/0 | true | 使用socat将链接容器的导出端口绑定到本地socket;在Rancher/K8s等环境建议设为false |
| RUN_CROND | true/false/1/0 | false | 启用容器内crond服务,默认运行/etc/periodic/${period}下的脚本,支持自定义crontab |
⚠️ 重要:确保已将数据卷挂载到容器外部,避免数据丢失 ⚠️
升级步骤:
shdocker pull gogs/gogs
shdocker stop gogs docker rm gogs
alpine未提供该平台的go包


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务