通过docker-compose部署Drone+Runner
参考资料
Docker Compose
Compose 是用于定义和运行多容器 Docker 应用程序的工具。使用 Compose,您可以使用 YAML 文件来配置应用程序的服务。然后,使用单个命令,从配置中创建并启动所有服务
先决条件
服务器已部署好gitea
根据官方指引,打开gitea创建 OAuth 应用程序,创建好后如下重定向url请写自己的地址,该地址可以访问到droe

创建共享密钥
1
2openssl rand -hex 16
bea26a2221fd8090ea38720fc445eca6
编写docker-compose.yml文件,文件内容如下👇
1 | |
解释:
my-net提前构建的网络的名称,external: true使用外部网络,也就是说使用我之前创建好的网络- drone
DRONE_DATABASE_DRIVER=mysql:链接数据库类型。DRONE_DATABASE_DATASOURCE=drone:okZ1c510^*My7Ux@tcp(mysql:3306)/drone?parseTime=true:我的mysql也安装在docker该my-net网络下使用mysql:3306可以访问,非此方法请填写完整访问路径。- ※※
DRONE_USER_CREATE=username:system,admin:true:设置admin账户,请与登录gitea登录账号相同。
DRONE_GITEA_SERVER=可以访问到gitea的地址:访问gitea的地址。DRONE_GITEA_CLIENT_ID=3e66e3f7-5fd4-4b1a-ad8e-4675864c08f4:gitea生产客户端id。DRONE_GITEA_CLIENT_SECRET=6Y2uKOZSqQ6Em4AJXGc7t2kl6EW0BWf6KpgeKwbzsLkI:gitea生成的客户端密钥。DRONE_RPC_SECRET=84c7dd7c79eacd089791beabbd684fb2:openssl rand -hex 16生成的字符串。DRONE_SERVER_HOST=可以访问到的地址:访问drone的地址。DRONE_SERVER_PROTO=http:请求类型。
- drone-runner
DRONE_RPC_PROTO=http:请求类型。DRONE_RPC_HOST=可以访问到的地址:请求drone的地址DRONE_RPC_SECRET=84c7dd7c79eacd089791beabbd684fb2:openssl rand -hex 16生成的字符串。DRONE_RUNNER_CAPACITY=2:限制运行器可以执行的并发管线的数量DRONE_RUNNER_NAME=my-first-runner:设置运行器的名称
- 其余环境变量可以参考如下
执行命令
1 | |
查看运行情况
1 | |
访问drone

如同所示点击continue进行登录,登陆成功后则搭建成功!
可能会遇到的问题
- 访问地址填写错误
- 未设置admin账户
解决方法,打开浏览器,输入对应地址测试是否能访问,停止并删除容器,从新构建。查看 docker logs 展示的日志,判断问题。
通过docker-compose部署Drone+Runner
https://crudclass.github.io/2022/08/20/docker/Docker-Compose/deploy-drone/
