使用Docker
一键搭建Drone CI
什么是Drone CI
⌗
不想写,自个儿搜吧。
这玩意儿作为CI入门还是可以的,部署方便,功能也比较强大。
环境工作⌗
- Gitea私服(也可以用其他的,Github、Gogs等都可以,我是用的Gitea)
- Docker 以及 Docker Compose
开始部署⌗
- 在gitea新建一个应用
操作流程:
- 点击右上角头像
- 选择应用
- 创建新的 OAuth2 应用程序,名称随便写,重定向URL写
http://下文yml中设置的域名/login
- 保存,记录下客户端ID和密钥,下面要用到
- 创建
docker-compose.yml
version: '3'
services:
drone-server:
container_name: drone-server
image: drone/drone:latest
restart: always
environment:
- DRONE_GITEA_SERVER=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的域名,也可以是 ip:port 的组合,和第一步填写的重定向URL的域名部分一致
- DRONE_TLS_AUTOCERT=false
- DRONE_NETWORK=cicd_default
- DRONE_RUNNER_NETWORKS=cicd_default
# 这个密钥是给runner用的
- DRONE_RPC_SECRET=Mu4Z1A9QgjOVEkyI
- DRONE_AGENTS_ENABLED=true
ports:
# 控制台页面端口
- "8000:80"
volumes:
- /data/drone:/data
drone-runner:
container_name: drone-runner
image: drone/drone-runner-docker:latest
restart: always
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=Mu4Z1A9QgjOVEkyI
- 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:
# - 3000:3000
- 启动服务
docker-compose up -d
- 如果不出错的话,就已经启动成功了
如何使用⌗
在项目中新建一个.drone.yml
文件即可,文件怎么写请参考官方文档或者自行网上搜索
结果展示⌗