侧边栏壁纸
博主头像
进一步,海阔天空 博主等级

进一步,海阔天空

  • 累计撰写 140 篇文章
  • 累计创建 19 个标签
  • 累计收到 7 条评论

目 录CONTENT

文章目录
CI

Drone安装与配置

海阔天空
2022-05-24 / 0 评论 / 0 点赞 / 356 阅读 / 0 字

简介

  • Drone是一个现代化的CI/CD平台,相比于传统的Jenkins等平台,Drone更为轻巧,速度更快,特别是与git和容器的完美结合,大大加快了开发的部署工作。
  • 本文介绍Drone如何安装并和gitea进行整合,下一篇将通过持续发布一个Java Springboot项目为例来介绍如何使用Drone。需要更详细的文档,可以查看官方网站

准备工作

  • 首先登录gitea后台,生成一个应用。记住应用的ClientID和密钥,后面要用。

gitea_application_create

创建gitea应用

  • 生成一个共享密钥,以便于runner和Drone Server之间进行通讯。
# openssl rand -hex 16
1bce30a727813ba274a295e9ecf4af85

Drone安装与配置

  • 本文通过docker-compose安装Drone,确认您已经安装好docker,最好设置国内代理镜像,否则有可能没法pull镜像。
vi /etc/docker/daemon.json

{
  "registry-mirrors":[
    "https://ustc-edu-cn.mirror.aliyuncs.com",
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ]
}

sudo systemctl daemon-reload
sudo systemctl restart docker
docker info #看看镜像是否已经改过


docker pull drone/drone:2

安装docker-compose

#sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo curl -L "https://get.daocloud.io/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
#安装bash_completion(可选)
sudo curl -L https://raw.githubusercontent.com/docker/compose/1.26.2/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
docker-compose --version
  • 运行drone容器。新建docker-compose.yml,配置drone。
version: '3'

services:
  drone-server:
    container_name: drone-server
    image: drone/drone:latest
    restart: always
    privileged: true
    environment:
      - DRONE_GITEA_SERVER=https://git.xxx.com:3000 #gitea服务地址
      - DRONE_GITEA_CLIENT_ID={{}} #上一步创建完成后生成的客户端ID
      - DRONE_GITEA_CLIENT_SECRET={{}} #上一步创建完成后生成的客户端密钥
      - DRONE_GIT_ALWAYS_AUTH=false
      - DRONE_GITEA_SKIP_VERIFY=true
      - DRONE_RUNNER_CAPACITY=2
      - DRONE_SERVER_PROTO=http
      - DRONE_SERVER_HOST=drone.xxx.com:8005 #drone的域名,也可以是 ip:port 的组合,和第一步填写的重定向URL的域名部分一致
      - DRONE_TLS_AUTOCERT=false
      - DRONE_NETWORK=cicd_default
      - DRONE_RUNNER_NETWORKS=cicd_default
      # 这个密钥是给runner用的,上文生成的。
      - DRONE_RPC_SECRET=1bce30a727813ba274a295e9ecf4af85
      - DRONE_AGENTS_ENABLED=true
      # 给用户admin权限
      - DRONE_USER_CREATE=username:【Git 仓库当前授权的账号名】,admin:true
    ports:
      # 控制台页面端口
      - "8005:80"
      - "7443:443"
    volumes:
      - /data/drone:/data

  drone-runner:
    container_name: drone-runner
    image: drone/drone-runner-docker:latest
    restart: always
    privileged: true
    depends_on:
      - drone-server
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - DRONE_RPC_PROTO=http
      # 如果直接使用本配置,这儿不需要改,如果部署到其他服务器,需要填server的域名
      - DRONE_RPC_HOST=drone-server
      # server配置的DRONE_RPC_SECRET
      - DRONE_RPC_SECRET=1bce30a727813ba274a295e9ecf4af85
      - DRONE_RUNNER_CAPACITY=2
      - DRONE_RUNNER_NAME=drone-runner
      - DRONE_RPC_SKIP_VERIFY=true
      # 下面注释的是runner的控制台,没必要加上,server可以直接看到
      # - DRONE_UI_USERNAME=root
      # - DRONE_UI_PASSWORD=root
    ports:
      - 3001:3000
docker-compose up -d

访问http://drone.xxx.com:8005即可进入drone,Drone的安装和配置就算成功了。docker有多种runner,适用于不同的场景,大家可以自己去研究。

0

评论区