Drone是一个CI/CD平台,支持通过docker来分发和使用。Gogs使用介绍Gogs是一款类似Github(国内有码市)的开源文件/代码管理系统。
相比使用rancher+gitlabCI的解决方案使用Drone + gogs更轻量级,服务器资源有限的中小型团队和个人开发者使用是比较好的。
前提条件:
安装 Docker、Docker-Compose,参考本博客之前的文章
创建文件夹
mkdir -p/data/program/drone-ci/gogs-data
mkdir -p /data/program/drone-ci/drone
cd /data/program/drone-ci/
nano docker-compose.yml
docker-compose.yml
mkdir -p/data/program/drone-ci/gogs-data
mkdir -p /data/program/drone-ci/drone
cd /data/program/drone-ci/
nano docker-compose.yml
docker-compose.yml
version: '2'
services:
gogs:
image: gogs/gogs:0.11.53
ports:
- "10081:22” # 这里是有双引号的,gogs ssh端口映射到宿主机10081
- 10082:3000 # gogs web端口映射到宿主机10082
volumes:
- /data/program/drone-ci/gogs-data:/data
restart: always
drone-server:
image: drone/drone:0.8.1
ports:
- 10083:8000 # drone web 端口映射到宿主机10082
- 10084:9000 # drone 服务端口
volumes:
- /data/program/drone-ci/drone:/var/lib/drone # drone存储文件映射到宿主机上
restart: always
environment:
# 开启注册,此配置允许任何人自注册和登录系统
- DRONE_OPEN=true
# 设置管理员用户
- DRONE_ADMIN=admin
# 开启Gogs驱动
- DRONE_GOGS=true
# Gogs服务器地址
- DRONE_GOGS_URL=http://宿主机IP或者域名:10082
# 此SECRET为任意值
- DRONE_SECRET=handhand
- DRONE_HOST=http://宿主机IP或者域名
# - DRONE_GOGS_SKIP_VERIFY=true
- DRONE_GOGS_PRIVATE_MODE=true
drone-agent:
image: drone/agent:0.8.1
command: agent
restart: always
depends_on: [ drone-server ]
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
# Drone Server 地址
- DRONE_SERVER=drone-server:9000
# 与Drone Server一致即可
- DRONE_SECRET=handhand
启动docker-compose
docker-compose up -d
gogs初始化
创建数据库
gogs可以使用mysql存储,需要提前创建数据库,在mysql中创建名为gogs到数据库,字符集为utf8,排序规则为utf8_general_ci.
首次运行安装向导:http://IP地址:10082
注:
域名:宿主机IP或者域名
ssh端口号:10081
http端口号:3000(这个为docker容器内监听的端口)
应用url: http://宿主机IP或者域名:10082
可选设置:
禁用用户自注册:内部使用,所有账号由管理员创建
创建管理员:填写管理员账号密码