docker部署
目前使用 docker-compose 的方式应该是主流的方式
docker-compose.yml
注解:
-
registry.wait 为离线的私有仓库,
git.services.wait 为离线的 gitea 仓库 -
用户 master 和 slave 通信的 DRONE_RPC_SECRET 是随便生成的;
-
Gitea OAuth 需要在 gitea 上配置一个应用和返回时的地址
-
特别注意的是 drone 没有账号体系,使用的是 gitea 里面的账号;
这里指定管理员时,需要指定 gitea 的用户登录帐号, 注意不是别名或邮箱地址。 -
本例使用了 traefik 作为统一的入口
-
存储和网络都是 external 类型的, 所以需要手动创建
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最后更新于