Gogs 是一个用 Go 语言编写的轻量级自托管 Git 服务,类似于 GitHub。以下是使用 Docker 配置 Gogs 的详细步骤。
确保已安装: - Docker - Docker Compose (推荐)
docker run -d --name=gogs -p 10022:22 -p 3000:3000 -v /var/gogs:/data gogs/gogs
访问 http://localhost:3000
进行初始配置。
创建 docker-compose.yml
文件:
version: '3'
services:
gogs:
image: gogs/gogs
container_name: gogs
ports:
- "3000:3000"
- "10022:22"
volumes:
- ./gogs_data:/data
restart: unless-stopped
environment:
- TZ=Asia/Shanghai
然后运行:
docker-compose up -d
http://your-server-ip:3000
修改 docker-compose.yml
添加数据库服务:
version: '3'
services:
gogs:
image: gogs/gogs
depends_on:
- db
# ...其他配置同上...
environment:
- DB_TYPE=mysql
- DB_HOST=db:3306
- DB_NAME=gogs
- DB_USER=gogs
- DB_PASSWD=yourpassword
db:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=rootpassword
- MYSQL_DATABASE=gogs
- MYSQL_USER=gogs
- MYSQL_PASSWORD=yourpassword
volumes:
- ./mysql_data:/var/lib/mysql
ROOT_URL
为 https://your-domain.com
备份数据目录 (/data
卷) 和数据库即可。
问题1: SSH 克隆失败 - 确保主机 SSH 端口 (默认10022) 未被占用 - 检查 Gogs 配置中的 SSH 端口与映射一致
问题2: 性能问题 - 生产环境推荐使用 MySQL/PostgreSQL 而非 SQLite3 - 增加服务器资源
问题3: 忘记管理员密码
docker exec -it gogs sh
cd /app/gogs
./gogs admin create-user --name=admin --password=newpassword --admin --email=admin@example.com
docker-compose pull
docker-compose up -d
升级前建议备份数据目录和数据库。
通过以上步骤,你应该能够成功配置并运行 Docker 版的 Gogs Git 服务。