
ixis/gogsGogs是一个基于Go语言开发的自托管Git服务,其核心目标是提供最简单、最快且最无痛苦的方式搭建自托管Git服务。通过Go语言的跨平台特性,Gogs可作为独立二进制分发到所有Go支持的平台,包括Linux、Mac OS X、Windows和ARM架构,适用于个人、团队或企业搭建私有Git仓库,实现代码版本管理与协作。
基本部署(SQLite3数据库):
bash# 数据存储在当前目录的gogs-data文件夹 docker run -d --name=gogs -p 3000:3000 -p 2222:22 -v $(pwd)/gogs-data:/data gogs/gogs
使用MySQL数据库:
bash# 需先启动MySQL容器 docker run -d --name=mysql -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=gogs -e MYSQL_USER=gogs -e MYSQL_PASSWORD=gogspassword mysql:5.7 # 启动Gogs并连接MySQL docker run -d --name=gogs -p 3000:3000 -p 2222:22 -v $(pwd)/gogs-data:/data \ -e DB_TYPE=mysql \ -e DB_HOST=mysql:3306 \ -e DB_NAME=gogs \ -e DB_USER=gogs \ -e DB_PASSWD=gogspassword \ --link mysql:mysql \ gogs/gogs
创建docker-compose.yml文件:
yamlversion: '3' services: gogs: image: gogs/gogs container_name: gogs ports: - "3000:3000" # Web界面端口 - "2222:22" # SSH访问端口 volumes: - ./gogs-data:/data # 数据持久化目录 environment: - DB_TYPE=postgres - DB_HOST=postgres:5432 - DB_NAME=gogs - DB_USER=gogsuser - DB_PASSWD=gogspassword depends_on: - postgres postgres: image: postgres:13 container_name: gogs-postgres environment: - POSTGRES_USER=gogsuser - POSTGRES_PASSWORD=gogspassword - POSTGRES_DB=gogs volumes: - postgres-data:/var/lib/postgresql/data volumes: postgres-data:
启动服务:
bashdocker-compose up -d
Gogs支持通过环境变量自定义配置,常用参数:
| 环境变量 | 说明 | 可选值 | 默认值 |
|---|---|---|---|
DB_TYPE | 数据库类型 | mysql/postgres/sqlite3/tidb | sqlite3 |
DB_HOST | 数据库主机地址 | - | - |
DB_PORT | 数据库端口 | - | 自动根据数据库类型设置 |
DB_NAME | 数据库名称 | - | gogs |
DB_USER | 数据库用户名 | - | - |
DB_PASSWD | 数据库密码 | - | - |
DOMAIN | 服务器域名 | - | localhost |
ROOT_URL | Gogs根URL | - | http://localhost:3000/ |
HTTP_PORT | Web服务端口(容器内) | - | 3000 |
SSH_PORT | SSH服务端口(容器内) | - | 22 |
容器内/data目录包含所有Gogs数据(仓库、配置、数据库文件等),建议通过-v参数挂载到宿主机目录,确保数据不会因容器重建而丢失。
部署完成后,通过http://<服务器IP>:3000访问Gogs Web界面。首次访问将进入初始化配置向导,需完成数据库设置、管理员账户创建等步骤,配置完成后即可开始使用。
Gogs项目采用MIT许可证,详见LICENSE。



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