Drone-CI 学习笔记
大道至简。和 Jenkins 相比, Drone 就轻量的多了,并且原生支持 Docker。此外,Drone 和源码管理系统相集成,所以 Drone 天生就省去了各种账户权限的配置,直接与 gitlab 、 github 、 Bitbucket 这样的源码管理系统操作源代码的权限一致。
编写 Env 文件
由于基于 Docker 安装的 Drone 有非常繁杂的配置项,建议将部分环境变量的设置写入 Env 文件,方便下次启动时使用。以 Gitea 为例,并放在
/etc/drone/
文件夹下。- Server 部分
DRONE_GITEA_CLIENT_ID=[ DRONE_GITEA_CLIENT_ID ] DRONE_GITEA_CLIENT_SECRET=[ GITEA_SECRET ] DRONE_GITEA_SERVER=http://[ GITEA_ADDRESS ]:[ PORT ] DRONE_GIT_ALWAYS_AUTH=false DRONE_RPC_SECRET=[ GENERATE_A_SECRET ] DRONE_SERVER_HOST=[ CURRENT_VPS_ADDRESS ] DRONE_SERVER_PROTO=http DRONE_USER_CREATE=username:ci-bot,admin:true
- Agent 部分
DRONE_RPC_HOST= [ DRONE_SERVER_HOST ] DRONE_RPC_PROTO=http DRONE_RPC_SECRET=[ MASTER_SECRET ] DRONE_RUNNER_CAPACITY=4
使用 Docker 启动
- Server 部分
# docker run --volume=/var/lib/drone:/data \ --env=DRONE_AGENTS_ENABLED=true \ --env-file=/etc/drone/server.env \ --publish=80:80 \ --publish=443:443 \ --restart=always \ --detach=true \ --name=drone \ drone/drone:1
- Agent 部分
# docker run -d \ -v /var/run/docker.sock:/var/run/docker.sock \ -p 3000:3000 \ --env-file=/etc/drone/agent.env \ --restart always \ --name runner \ drone/agent:1
评论
发表评论