version: '3.8' # 定义两个服务:drone-server(调度管理)、drone-runner-docker(任务执行) services: # 1. Drone Server 服务(核心管理节点) drone-server: image: registry.cn-hangzhou.aliyuncs.com/zhongpengqun/wanderer:linux-amd64-drone-v2.26.0 container_name: drone-server restart: always ports: - "8180:80" # Drone 前端访问端口(主机8080 -> 容器80) volumes: - ./drone/server/data:/data # 持久化 Drone 配置与数据 environment: # 核心配置:指向 Gogs 服务地址(必须可访问,替换为你的 Gogs 地址) DRONE_GOGS_SERVER: "http://gogs.9981.tech" # Drone 自身访问地址(主机IP+端口,需与 ports 映射一致) DRONE_SERVER_HOST: "47.120.61.39:8180" DRONE_SERVER_PROTO: "http" # 非HTTPS填http,HTTPS填https # 认证密钥:自定义随机字符串(Server 与 Runner 需一致,建议修改为自己的字符串) DRONE_RPC_SECRET: "my-drone-secret-123456-z" # 可选:关闭注册(仅授权用户可访问) #DRONE_REGISTRATION_CLOSED: "true" # 可选:配置时区 TZ: "Asia/Shanghai" # --- Gogs 基础配置 --- DRONE_GOGS: "true" # --- 关键:使用 Gogs 用户名 + PAT --- DRONE_GOGS_SKIP_VERIFY: "false" # 开启证书验证(生产环境) DRONE_GIT_USERNAME: "z16" # 如:admin DRONE_GIT_PASSWORD: "4c2bae619abbabb0733ffe50f007b7734cd30109" # 粘贴此处 # 2. Drone Docker Runner 服务(流水线执行节点) drone-runner-docker: image: registry.cn-hangzhou.aliyuncs.com/zhongpengqun/wanderer:linux-amd64-drone-runner-docker-v1.8.4 container_name: drone-runner-docker restart: always privileged: true # 赋予特权,支持构建 Docker 镜像 depends_on: - drone-server # 依赖 drone-server,先启动 Server 再启动 Runner ports: - "3000:3000" # Runner 监控端口(可选,可不暴露) volumes: - /var/run/docker.sock:/var/run/docker.sock # 挂载 Docker 套接字,核心依赖 - ./drone/runner/data:/data # 持久化 Runner 数据 environment: # 指向 Drone Server 的地址(与 Server 配置一致) DRONE_RPC_HOST: "47.120.61.39:8180" DRONE_RPC_PROTO: "http" # 认证密钥:必须与 drone-server 的 DRONE_RPC_SECRET 完全一致 DRONE_RPC_SECRET: "my-drone-secret-123456-z" # 最大并行任务数:按需调整(如 2 表示同时执行 2 个任务) DRONE_RUNNER_CAPACITY: "2" # 可选:Runner 名称 DRONE_RUNNER_NAME: "docker-runner-01" # 可选:配置时区 TZ: "Asia/Shanghai" # 可选:定义网络(默认使用 bridge 网络,可自定义) networks: default: name: drone-network driver: bridge