通过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/