docker-compose.yaml 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. version: '3.8'
  2. # 定义两个服务:drone-server(调度管理)、drone-runner-docker(任务执行)
  3. services:
  4. # 1. Drone Server 服务(核心管理节点)
  5. drone-server:
  6. image: registry.cn-hangzhou.aliyuncs.com/zhongpengqun/wanderer:linux-amd64-drone-v2.26.0
  7. container_name: drone-server
  8. restart: always
  9. ports:
  10. - "8180:80" # Drone 前端访问端口(主机8080 -> 容器80)
  11. volumes:
  12. - ./drone/server/data:/data # 持久化 Drone 配置与数据
  13. environment:
  14. # 核心配置:指向 Gogs 服务地址(必须可访问,替换为你的 Gogs 地址)
  15. DRONE_GOGS_SERVER: "http://gogs.9981.tech"
  16. # Drone 自身访问地址(主机IP+端口,需与 ports 映射一致)
  17. DRONE_SERVER_HOST: "114.217.21.151:8180"
  18. DRONE_SERVER_PROTO: "http" # 非HTTPS填http,HTTPS填https
  19. # 认证密钥:自定义随机字符串(Server 与 Runner 需一致,建议修改为自己的字符串)
  20. DRONE_RPC_SECRET: "my-drone-secret-123456-z"
  21. # 可选:关闭注册(仅授权用户可访问)
  22. #DRONE_REGISTRATION_CLOSED: "true"
  23. # 可选:配置时区
  24. TZ: "Asia/Shanghai"
  25. # 2. Drone Docker Runner 服务(流水线执行节点)
  26. drone-runner-docker:
  27. image: registry.cn-hangzhou.aliyuncs.com/zhongpengqun/wanderer:linux-amd64-drone-runner-docker-v1.8.4
  28. container_name: drone-runner-docker
  29. restart: always
  30. privileged: true # 赋予特权,支持构建 Docker 镜像
  31. depends_on:
  32. - drone-server # 依赖 drone-server,先启动 Server 再启动 Runner
  33. ports:
  34. - "3000:3000" # Runner 监控端口(可选,可不暴露)
  35. volumes:
  36. - /var/run/docker.sock:/var/run/docker.sock # 挂载 Docker 套接字,核心依赖
  37. - ./drone/runner/data:/data # 持久化 Runner 数据
  38. environment:
  39. # 指向 Drone Server 的地址(与 Server 配置一致)
  40. DRONE_RPC_HOST: "114.217.21.151:8180"
  41. DRONE_RPC_PROTO: "http"
  42. # 认证密钥:必须与 drone-server 的 DRONE_RPC_SECRET 完全一致
  43. DRONE_RPC_SECRET: "my-drone-secret-123456-z"
  44. # 最大并行任务数:按需调整(如 2 表示同时执行 2 个任务)
  45. DRONE_RUNNER_CAPACITY: "2"
  46. # 可选:Runner 名称
  47. DRONE_RUNNER_NAME: "docker-runner-01"
  48. # 可选:配置时区
  49. TZ: "Asia/Shanghai"
  50. # 可选:定义网络(默认使用 bridge 网络,可自定义)
  51. networks:
  52. default:
  53. name: drone-network
  54. driver: bridge