Gos+Drone+Docker实现持续部署#
使用Docker-Compose实现Gos+Drone+DockerRunner的部署
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
| version: "3"
services:
gogs:
restart: always
image: gogs/gogs
container_name: gogs
ports:
- "6022:22"
- "6023:3000"
volumes:
- /var/gogs:/data/gogs #配置文件映射
- /home/gogs/data:/data/git/gogs-repositories #Git仓库映射
drone-server:
image: drone/drone:2
container_name: drone-server
environment:
- TZ=Asia/Shanghai
- DRONE_GOGS_SERVER=http://gogs:3000 #Gogs服务地址
- DRONE_GIT_ALWAYS_AUTH=false #可选的布尔值将 Drone 配置为在克隆公共存储库时进行身份验证
- DRONE_RPC_SECRET=XXXXXXXXXXXXXXX
- DRONE_SERVER_HOST=drone.ecturing.com #提供外部主机名称
- DRONE_SERVER_PROTO=http #协议方案
restart: always
ports:
- "8080:80"
- "4443:443"
drone-runner:
image: drone/drone-runner-docker:1
container_name: drone-runner
environment:
- DRONE_RPC_PROTO=http
- DRONE_RPC_HOST=drone.ecturing.com #Drone地址
- DRONE_RPC_SECRET=XXXXXXXXXXXXXXX #与Droen通讯的密钥
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
depends_on:
- drone-server
|
使用服务器IP+6023端口进行远程登录,登录后会进行首次配置,我选择内置数据库为sqlite,注意HTTP克隆地址与SSH克隆地址的地址,填写服务器内网IP地址+对应映射的端口号。若填写错误,进入宿主机的/var/gogs文件夹删除所有文件,再次启动进行重新配置。
常见问题#
docker-compose执行down操作后为何Git仓库数据丢失?
docker-compose执行的是删除容器操作,未持久化的容器数据会丢失!挂载Gogs容器的/data/git/gogs-repositories文件到宿主机器,实现数据持久化
docker-compose执行down操作后Drone登录显示未授权用户?
进入Gogs管理页面,点击用户设置,授权应用,点击删除令牌,然后在Drone登录界面再次申请登录,即可成功