Administrator
发布于 2024-10-04 / 3 阅读
0

Ubuntu 环境下安装Drone

Ubuntu 环境下安装Drone

1.docker-compose.yml 安装

version: '3'  # 使用 Docker Compose 文件版本 3

services:
  drone-server:  # 定义名为 drone-server 的服务
    restart: always  # 总是在容器退出时重新启动
    image: drone/drone:2  # 使用 drone/drone:2 镜像作为服务的基础镜像
    ports:
      - "80:80"  # 将容器的 80 端口映射到宿主机的 80 端口
    volumes:
      - /home/drone/:/var/lib/drone/  # 将宿主机的 /home/drone/ 目录挂载到容器的 /var/lib/drone/ 目录
      - /home/data/:/data/  # 将宿主机的 /home/data/ 目录挂载到容器的 /data/ 目录
    environment:  # 设置容器的环境变量
      - DRONE_GITEA_SERVER=http://10.7.127.154:3001/  # 指定 Gitea 服务器地址
      - DRONE_GITEA_CLIENT_ID=d4ff689a-5998-4a15-8f79-0fa9e1f4ac92  # 指定 Gitea OAuth2 客户端 ID
      - DRONE_GITEA_CLIENT_SECRET=5B8JLEPfh31jrLuDjeQUNu9B6HTpp28qiQDsmFiXtQO5  # 指定 Gitea OAuth2 客户端密钥
      - DRONE_SERVER_HOST=10.7.127.154:80  # 指定 Drone 服务器的主机名或 IP 地址
      - DRONE_SERVER_PROTO=http  # 指定 Drone 服务器使用的协议
      - DRONE_RPC_SECRET=afc780decf93ca9396af1b9c5ba18aa1  # 指定 Drone 与 runner 通信的密钥
      - DRONE_GIT_ALWAYS_AUTH=true  # 指定 Git 仓库是否总是需要认证
      - DRONE_GIT_USERNAME=demo  # 指定用于与 Git 仓库通信的用户名
      - DRONE_GIT_PASSWORD=74d8f202b62be8f91d8cab57d4f8ae476f863a9b  # 指定用于与 Git 仓库通信的密码
      - DRONE_USER_CREATE=username:root,admin:true # 开启管理员账户

  drone-runner-docker:  # 定义名为 drone-runner-docker 的服务
    restart: always  # 总是在容器退出时重新启动
    image: drone/drone-runner-docker:1  # 使用 drone/drone-runner-docker:1 镜像作为服务的基础镜像
    ports:
      - "3000:3000"  # 将容器的 3000 端口映射到宿主机的 3000 端口
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock  # 将宿主机的 Docker socket 挂载到容器内
    environment:  # 设置容器的环境变量
      - DRONE_RPC_PROTO=http  # 指定 Drone 与 runner 通信使用的协议
      - DRONE_RPC_HOST=10.7.127.154:80  # 指定 Drone 服务器的主机名或 IP 地址
      - DRONE_RPC_SECRET=afc780decf93ca9396af1b9c5ba18aa1  # 指定 Drone 与 runner 通信的密钥
      - DRONE_RUNNER_NAME=drone-runner-docker  # 指定 Drone runner 的名称
      - DRONE_RUNNER_CAPACITY=2  # 指定 Drone runner 的并发处理能力

2.获取gitea授权信息

1.在gitea个人中心->设置->应用中创建AccessToken 以及Oauth2应用

2.保存好令牌及 令牌码

- DRONE_GITEA_CLIENT_ID=gitea生成的OAuth2客户端ID
- DRONE_GITEA_CLIENT_SECRET=gitea生成的OAuth2客户端密钥
- DRONE_GIT_USERNAME=令牌名称
- DRONE_GIT_PASSWORD=令牌秘钥

3.生成Drone与runner通信密钥,并替换上面docker-compose.yml对应的字段

openssl rand -hex 16
afc780decf93ca9396af1b9c5ba18aa1

4.运行yml文件

docker-compose up -d

5.访问drone地址

若授权失败,检查访问地址以及令牌和Auth2