内容目录
用docker搭建轻量git服务器gogs
准备工作,仅提纲
- 安装docker-ce
- 安装 docker-compose
- 将域名指向对应的服务器
- 获得对应的域名SSL证书(nginx 格式)
- 如果有需要开放的端口,请自行打开防火墙端口,和/或 添加安全组规则开放相应端口。
部署 nginx-proxy
mkdir -p /data/docker-compose/nginx-proxy/
cd /data/docker-compose/nginx-proxy/
vim docker-compose.yml
version: '2'
services:
nginx-proxy:
image: jwilder/nginx-proxy
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- ./certs:/etc/nginx/certs/
network_mode: bridge
启动 nginx-proxy
docker-compose up -d
部署gogs
mkdir -p /data/docker-compose/gogs/
cd /data/docker-compose/gogs/
vim db.env
MYSQL_ROOT_PASSWORD=mysql123.rootPass
MYSQL_DATABASE=gogs_db
MYSQL_USER=gogs_user
MYSQL_PASSWORD=gogs123.gogsPass
vim docker-compose.yml
version: '3'
services:
db:
image: mysql:5.7
restart: always
volumes:
- ./mysql/runtime:/var/lib/mysql
env_file:
- ./db.env
network_mode: bridge
gogs:
image: gogs/gogs
restart: always
links:
- db
volumes:
- ./data/:/data
ports:
- "3000:3000"
- "10022:22"
environment:
- VIRTUAL_HOST=gogs.zhangguangtong.cn
- VIRTUAL_PORT=3000
env_file:
- ./db.env
network_mode: bridge
volumes:
db:
gogs:
说明:
-
nginx-proxy 会通过哦docker接口读取容器的环境变量,当发现容器有
VIRTUAL_HOST
时,会自动设置转发规则,将对应域名转发至含有这个变量的容器。 -
有多个域名时,可以用逗号分割
VIRTUAL_HOST=zhangguangtong.cn,gogs.zhangguangtong.cn
。 -
默认转发到容器的80端口,可以通过设置
VIRTUAL_PORT
指定需要转发的端口。 -
如需要配置SSL证书,请将证书放到
/data/docker-compose/nginx-proxy/certs
目录下,以如下格式命名
- zhangguangtong.cn.crt
- zhangguangtong.cn.key
- nginx-proxy 先找是否存在
gogs.zhangguangtong.cn.crt
和gogs.zhangguangtong.cn.key
作为域名的证书和私钥。 - 没有的话再找是否存在
zhangguangtong.cn.crt
和zhangguangtong.cn.key
,如果存在则设置为证书和私钥。
启动gogs容器
docker-compose up -d
配置gogs
打开 https://gogs.zhangguangtong.cn/
按照提示进行安装。
主要配置
配置选项 | 配置 |
---|---|
Database Type | MySQL |
Host | db:3306 |
User | gogs_user |
Password | 在db.env 文件中设置的密码 |
Database Name | gogs_db |
Domain | gogs.zhangguangtong.cn |
SSH Port | 10022 |
HTTP Port | 3000 |
Application URL | https://gogs.zhangguangtong.cn/ |
可选配置
为了安全起见在,Server and Other Services Settings中,勾选Disable Self-registration
。
在 Admin Account Settings
中,设置管理员帐号。
其他保持默认,然后单击Install Gogs
完成安装。