Docker 的 CI/CD 工具,其所有编译、测试的流程都在 Docker 容器中进行。其主要核心应该就是 Configuration as a code + Docker 了。每个项目下都需要定义一个 YML 配置文件,默认为 .drone.yml,在该配置文件中可自定义 Pipelines,配置中的每一个 Pipeline 步骤都是在一个独立的 Docker 容器中自动执行的。并且 Drone 现在已默认无缝集成了多种代码管理平台,目前支持的有如下几种:
GitHub
Bitbucket
GitLab
Gitea
Gogs
后面我会以集成 Github 为例来说明下我利用 Drone 自动将自己的 Github Pages 项目打包并同时部署到自己服务器、GitHub Pages、Coding Pages 上的例子。
运行 Drone 准备
Drone 包含两个服务
drone-server:负责后台管理界面以及调度
drone-agent:负责具体的任务执行
所以,安装的时候最好统一安装管理咯,这边使用 docker-compose 来进行编排安装管理。
其他的一些核心概念的学习可以参考下:
GeekPipe:基于 Drone 的持续集成实践之基本概念篇
安装 Docker
移除旧版(如果有)
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装 Docker CE
1. 安装必要的包:
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
2. 设置 Docker 仓库d-r