使用`Docker`一键搭建`Drone CI`

什么是Drone CI

不想写,自个儿搜吧。
这玩意儿作为CI入门还是可以的,部署方便,功能也比较强大。

环境工作

  1. Gitea私服(也可以用其他的,Github、Gogs等都可以,我是用的Gitea)
  2. Docker 以及 Docker Compose

开始部署

  1. 在gitea新建一个应用

    操作流程:

    1. 点击右上角头像
    2. 选择应用
    3. 创建新的 OAuth2 应用程序,名称随便写,重定向URL写http://下文yml中设置的域名/login
    4. 保存,记录下客户端ID和密钥,下面要用到
  2. 创建docker-compose.yml

    1
    version: '3'
    2
    3
    services:
    4
      drone-server:
    5
        container_name: drone-server
    6
        image: drone/drone:latest
    7
        restart: always
    8
        environment:
    9
          - DRONE_GITEA_SERVER=gitea服务地址
    10
          - DRONE_GITEA_CLIENT_ID=上一步创建完成后生成的客户端ID
    11
          - DRONE_GITEA_CLIENT_SECRET=上一步创建完成后生成的客户端密钥
    12
          - DRONE_GIT_ALWAYS_AUTH=false
    13
          - DRONE_GITEA_SKIP_VERIFY=true
    14
          - DRONE_RUNNER_CAPACITY=2
    15
          - DRONE_SERVER_PROTO=http
    16
          - DRONE_SERVER_HOST=drone的域名,也可以是 ip:port 的组合,和第一步填写的重定向URL的域名部分一致
    17
          - DRONE_TLS_AUTOCERT=false
    18
          - DRONE_NETWORK=cicd_default
    19
          - DRONE_RUNNER_NETWORKS=cicd_default
    20
          # 这个密钥是给runner用的
    21
          - DRONE_RPC_SECRET=Mu4Z1A9QgjOVEkyI
    22
          - DRONE_AGENTS_ENABLED=true
    23
        ports:
    24
          # 控制台页面端口
    25
          - "8000:80"
    26
        volumes:
    27
          - /data/drone:/data
    28
    29
      drone-runner:
    30
        container_name: drone-runner
    31
        image: drone/drone-runner-docker:latest
    32
        restart: always
    33
        depends_on:
    34
          - drone-server
    35
        volumes:
    36
          - /var/run/docker.sock:/var/run/docker.sock
    37
        environment:
    38
          - DRONE_RPC_PROTO=http
    39
          # 如果直接使用本配置,这儿不需要改,如果部署到其他服务器,需要填server的域名
    40
          - DRONE_RPC_HOST=drone-server
    41
          # server配置的DRONE_RPC_SECRET
    42
          - DRONE_RPC_SECRET=Mu4Z1A9QgjOVEkyI
    43
          - DRONE_RUNNER_CAPACITY=2
    44
          - DRONE_RUNNER_NAME=drone-runner
    45
          - DRONE_RPC_SKIP_VERIFY=true
    46
          # 下面注释的是runner的控制台,没必要加上,server可以直接看到
    47
          # - DRONE_UI_USERNAME=root
    48
          # - DRONE_UI_PASSWORD=root
    49
        # ports: 
    50
        #   - 3000:3000
  3. 启动服务

    docker-compose up -d

  4. 如果不出错的话,就已经启动成功了

如何使用

在项目中新建一个.drone.yml文件即可,文件怎么写请参考官方文档或者自行网上搜索

结果展示

项目Demo
ci配置截图
运行结果

李寻欢 wechat
扫码关注公众号
0%