导航
- 简介
- 部署
- 实例1 - nodejs 项目
- 实例2 - go 项目
简介
目前使用 docker-compose 的方式应该是主流的方式
部署
TODO: 待完善
docker-compose.yml
注解:
- registry.wait 为离线的私有仓库,
git.services.wait 为离线的 gitea 仓库
- 用户 master 和 slave 通信的 DRONE_RPC_SECRET 是随便生成的;
- Gitea OAuth 需要在 gitea 上配置一个应用和返回时的地址
- 特别注意的是 drone 没有账号体系,使用的是 gitea 里面的账号;
这里指定管理员时,需要指定 gitea 的用户登录帐号, 注意不是别名或邮箱地址。
- 本例使用了 traefik 作为统一的入口
- 存储和网络都是 external 类型的, 所以需要手动创建
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
version: '3'
services:
drone-server:
image: registry.wait/cwx/drone/drone:2.16.0
# ports:
# - 80:80
# - 443:443
restart: unless-stopped
networks:
- services
# privileged: true
environment:
# GITEA 配置(OAuth2)
# Gitea OAuth 客户端 ID
- DRONE_GITEA_CLIENT_ID=3dee43ca-55c2-4878-b912-5fe892cc6f4b
# Gitea OAuth 客户端密钥
- DRONE_GITEA_CLIENT_SECRET=gto_rkxuxkaneyrxpuji5i3hwvunhlzd3sfhhifhn4z5qj23u6hz2nu3
# Gitea 服务器地址
- DRONE_GITEA_SERVER=https://git.services.wait
# - DRONE_GITEA_SERVER=http://10.2.1.5:3000
# 和 runner 通信的 rpc 密钥
- DRONE_RPC_SECRET=12e42a821c41754db091b62d899edff7
# drone server 的服务地址; IP或域名
- DRONE_SERVER_HOST=drone.services.wait
# - DRONE_TLS_AUTOCERT=false
- DRONE_SERVER_PROTO=https
# - DRONE_SERVER_PROTO=https
# - DRONE_TLS_CERT=/certs/services.wait.pem
# - DRONE_TLS_KEY=/certs/services.wait-key.pem
- DRONE_LOGS_DEBUG=true
# - DRONE_GIT_ALWAYS_AUTH=false
# 创建管理员账户, 这里对应为 gitee 的用户名(也就是登录的账号,不是昵称)
# 也就是说 这个外部帐号会作为管理员
# 说明, 这里应该是 gitee 内的登录帐号, 不是别名或邮箱
- DRONE_USER_CREATE=username:chenwx,admin:true
# 数据库默认是 sqlite
# - DRONE_DATABASE_DRIVER=mysql
# - DRONE_DATABASE_DATASOURCE=root:password@tcp(1.2.3.4:3306)/drone?parseTime=true
volumes:
- drone_data:/data
# - ./ssl/services.wait.pem:/certs/services.wait.pem:ro
# - ./ssl/services.wait-key.pem:/certs/services.wait-key.pem:ro
- ./ssl/cwxCA.pem:/etc/ssl/certs/cwxCA.pem:ro
labels:
- "service_name=drone"
- "traefik.enable=true"
- "traefik.http.routers.droneHttps.entrypoints=https"
- "traefik.http.routers.droneHttps.service=droneServer"
- "traefik.http.routers.droneHttps.rule=Host(`drone.services.wait`)"
- "traefik.http.routers.droneHttps.tls=true"
- "traefik.http.services.droneServer.loadbalancer.server.port=80"
logging:
options:
labels: "service_name"
drone-docker-runner:
# container_name: drone-runner
image: registry.wait/cwx/drone/drone-runner-docker:1.8.3
# restart: always
# privileged: true
networks:
- services
environment:
# 用于连接到 Drone 服务器的协议; http 或 https
# - DRONE_RPC_PROTO=https
- DRONE_RPC_PROTO=https
# 用于连接到 Drone 服务器的主机名
- DRONE_RPC_HOST=drone.services.wait
# server rpc key
- DRONE_RPC_SECRET=12e42a821c41754db091b62d899edff7
# 限制运行程序可以执行的并发管道数
- DRONE_RUNNER_CAPACITY=2
# 自定义 docker runner 节点名称
- DRONE_RUNNER_NAME=docker-runner-1
# - DRONE_RUNNER_NETWORKS=drone_default
# - DRONE_DEBUG=true # 调试相关, 部署的时候建议先打开
# - DRONE_LOGS_DEBUG=true # 调试相关, 部署的时候建议先打开
# - DRONE_LOGS_TRACE=true # 调试相关, 部署的时候建议先打开
- TZ=Asia/Shanghai
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /home/wait/data/ca/cwxCA.pem:/etc/ssl/certs/cwxCA.pem:ro
volumes:
drone_data:
external: true
networks:
services:
external: true
|