docker-compose.yml 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. # Drone CI(对接本机 Gogs)— 部署到测试机 /root/drone/
  2. # 用法:
  3. # cp .env.example .env # 填写 DRONE_RPC_SECRET
  4. # docker compose up -d
  5. #
  6. # 访问:http://101.35.245.122:18088 (用 Gogs 用户名/密码登录)
  7. # Gogs:http://101.35.245.122:3000
  8. #
  9. # 流水线:仅 tag → 生产 Docker 交付包 → /root/zkxw-releases/
  10. services:
  11. drone:
  12. image: drone/drone:2
  13. container_name: drone
  14. restart: always
  15. ports:
  16. - '18088:80'
  17. volumes:
  18. - drone-data:/data
  19. environment:
  20. DRONE_AGENTS_ENABLED: 'true'
  21. DRONE_GOGS_SERVER: ${DRONE_GOGS_SERVER:-http://101.35.245.122:3000}
  22. DRONE_GOGS_SKIP_VERIFY: ${DRONE_GOGS_SKIP_VERIFY:-false}
  23. DRONE_RPC_SECRET: ${DRONE_RPC_SECRET}
  24. DRONE_SERVER_HOST: ${DRONE_SERVER_HOST:-101.35.245.122:18088}
  25. DRONE_SERVER_PROTO: ${DRONE_SERVER_PROTO:-http}
  26. DRONE_GIT_ALWAYS_AUTH: ${DRONE_GIT_ALWAYS_AUTH:-false}
  27. extra_hosts:
  28. - '101.35.245.122:host-gateway'
  29. - 'host.docker.internal:host-gateway'
  30. runner:
  31. image: drone/drone-runner-docker:1
  32. container_name: drone-runner
  33. restart: always
  34. depends_on:
  35. - drone
  36. volumes:
  37. - /var/run/docker.sock:/var/run/docker.sock
  38. environment:
  39. DRONE_RPC_PROTO: ${DRONE_RPC_PROTO:-http}
  40. DRONE_RPC_HOST: ${DRONE_RPC_HOST:-drone:80}
  41. DRONE_RPC_SECRET: ${DRONE_RPC_SECRET}
  42. DRONE_RUNNER_CAPACITY: ${DRONE_RUNNER_CAPACITY:-1}
  43. DRONE_RUNNER_NAME: ${DRONE_RUNNER_NAME:-zkxw-test-1}
  44. # 允许流水线挂载 docker.sock / 发版目录 / Maven 公共仓库(host volume allowlist)
  45. # zkxw → /releases;杭州第一技师 → /hzdyjs-releases;Java 依赖 → /maven-repo
  46. # 注意:流水线 yaml 勿再声明相同容器路径,否则 Duplicate mount point
  47. DRONE_RUNNER_VOLUMES: /var/run/docker.sock:/var/run/docker.sock,/root/zkxw-releases:/releases,/root/hzdyjs-releases:/hzdyjs-releases,/root/maven-repo:/maven-repo
  48. # 允许 privileged 步骤(docker build)
  49. DRONE_RUNNER_PRIVILEGED_IMAGES: docker:27-cli,docker:24-cli,docker:dind
  50. extra_hosts:
  51. - '101.35.245.122:host-gateway'
  52. - 'host.docker.internal:host-gateway'
  53. volumes:
  54. drone-data: