root 1 hafta önce
ebeveyn
işleme
9a3c3a8ff7
2 değiştirilmiş dosya ile 86 ekleme ve 0 silme
  1. 57 0
      drone/docker-compose.yaml
  2. 29 0
      gitlab/docker-compose.yaml

+ 57 - 0
drone/docker-compose.yaml

@@ -0,0 +1,57 @@
+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: "114.217.21.151: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"
+
+  # 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: "114.217.21.151: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

+ 29 - 0
gitlab/docker-compose.yaml

@@ -0,0 +1,29 @@
+version: '3.8'  # 兼容大多数 Docker 版本
+
+services:
+  gitlab:
+    image: registry.cn-hangzhou.aliyuncs.com/zhongpengqun/wanderer:linux-amd64-gitlab-ce-18.7.0-ce.0
+    container_name: gitlab-container  # 容器名称,方便管理
+    restart: always  # 容器异常退出时自动重启
+    privileged: true  # 赋予容器特权,确保文件权限正常
+    environment:
+      # 配置 GitLab 外部访问地址(核心!需替换为你的服务器IP或域名,端口与下方ports映射一致)
+      GITLAB_EXTERNAL_URL: "http://gitlab.9981.tech"
+      # 配置 SSH 访问端口(若修改ssh端口,需对应下方ports映射)
+      GITLAB_SSH_PORT: 2224
+      TZ: "Asia/Shanghai"
+    ports:
+      - "8929:80"    # HTTP 访问端口(主机8929对应容器80,可自定义主机端口)
+      - "4433:443"   # HTTPS 访问端口(可选,若需HTTPS可启用,自定义主机端口)
+      - "2224:22"    # SSH 访问端口(主机2224对应容器22,避免与服务器默认22端口冲突)
+    volumes:
+      # 目录挂载:将GitLab数据持久化到服务器本地,避免容器删除后数据丢失
+      - ./gitlab/config:/etc/gitlab        # GitLab 配置文件目录
+      - ./gitlab/data:/var/opt/gitlab      # GitLab 数据存储目录(仓库、用户数据等)
+      - ./gitlab/logs:/var/log/gitlab      # GitLab 日志目录
+    # 可选:限制资源使用,避免GitLab占用过多服务器资源
+    deploy:
+      resources:
+        limits:
+          cpus: '2'
+          memory: 4G