docker-compose.yaml 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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: "47.120.61.39: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. # --- Gogs 基础配置 ---
  26. DRONE_GOGS: "true"
  27. # --- 关键:使用 Gogs 用户名 + PAT ---
  28. DRONE_GOGS_SKIP_VERIFY: "false" # 开启证书验证(生产环境)
  29. DRONE_GIT_USERNAME: "z16" # 如:admin
  30. DRONE_GIT_PASSWORD: "4c2bae619abbabb0733ffe50f007b7734cd30109" # 粘贴此处
  31. # 2. Drone Docker Runner 服务(流水线执行节点)
  32. drone-runner-docker:
  33. image: registry.cn-hangzhou.aliyuncs.com/zhongpengqun/wanderer:linux-amd64-drone-runner-docker-v1.8.4
  34. container_name: drone-runner-docker
  35. restart: always
  36. privileged: true # 赋予特权,支持构建 Docker 镜像
  37. depends_on:
  38. - drone-server # 依赖 drone-server,先启动 Server 再启动 Runner
  39. ports:
  40. - "3000:3000" # Runner 监控端口(可选,可不暴露)
  41. volumes:
  42. - /var/run/docker.sock:/var/run/docker.sock # 挂载 Docker 套接字,核心依赖
  43. - ./drone/runner/data:/data # 持久化 Runner 数据
  44. environment:
  45. # 指向 Drone Server 的地址(与 Server 配置一致)
  46. DRONE_RPC_HOST: "47.120.61.39:8180"
  47. DRONE_RPC_PROTO: "http"
  48. # 认证密钥:必须与 drone-server 的 DRONE_RPC_SECRET 完全一致
  49. DRONE_RPC_SECRET: "my-drone-secret-123456-z"
  50. # 最大并行任务数:按需调整(如 2 表示同时执行 2 个任务)
  51. DRONE_RUNNER_CAPACITY: "2"
  52. # 可选:Runner 名称
  53. DRONE_RUNNER_NAME: "docker-runner-01"
  54. # 可选:配置时区
  55. TZ: "Asia/Shanghai"
  56. # 可选:定义网络(默认使用 bridge 网络,可自定义)
  57. networks:
  58. default:
  59. name: drone-network
  60. driver: bridge