基于Drone实现CI/CD【0到1架构系列】

CI/CD是持续性集成和持续性部署,简单来讲就是自动化构建和自动化部署。目前有很多集成方案,也有很多组装方案,只要能实现自动化构建出制品,再自动部署到生产环境就行。

目前很多源代码都集成了CI/CD功能,drone也是目前比较流行的一个方案,简单易用,高性能。

前提条件

已经使用Gitea部署作用源码管理,使用gitea搭建源码管理 。

已经使用Harbor部署私库,harbor 搭建和部署。

已经使用Portainer部署,portainer安装,配置,使用。

准备工作

拉取我们接下来CI/CD工作有可能会用到的docker镜像,后面会继续解释这些镜像的作用。

#自动构建
docker pull drone/drone
docker pull drone/drone-runner-docker

#自动部署
docker pull drone/drone-runner-ssh
docker pull docker
docker pull plugins/docker
docker pull curlimages/curl

自动构建

drone是服务中心或者理解成任务中心,Git的webhook会通知到这里。

drone-runner-docker相当于实际参于构建工作的作业容器,drone-runner-docker定时与drone通讯获取构建任务,然后按规定的流程执行相应工作。这个流程的设计由.drone.yml配置文件决定,所以编写.drone.yml也是主要核心。

步骤一,设置Gitea的OAuth2登陆,因为drone采用OAuth2登陆方案。

登陆Gitea -> 右上角 -> 管理后台 -> 管理设置 -> 集成 -> 应用。创建应用,重定向 URI地址填写你部署的dron域名,例如:htts://drone.xxxx.com/login

步骤二,启动容器,可以单个容器启动,这里使用docker-compose进行管理。

version: "3"
 
services:
  drone-server:
    image: drone:latest
    container_name: drone
    environment:
      - DRONE_GITEA_SERVER=https://gitea.xxxx.com   #你部署的源码地址
      - DRONE_GITEA_CLIENT_ID=dadda5f7-a951-4e8a-a2de-ebf737a5bef5 #Oauth2登陆,客户端Id
      - DRONE_GITEA_CLIENT_SECRET=******************************** #Oauth2登陆,客户端密钥
      - DRONE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值