新版的Drone可以直接使用OAuto2和drone进行通信,无缝集成,配置完成后只需要得到gitea的授权即可进入drone平台,连账户和密码都不用输了
来创建一个OAuth2应用程序
- 生成共享密钥
[root@eesdd musis]# openssl rand -hex 10
29080549923228e4cdb2
启动一个无人机drone服务端
docker run -d -p8889:80 --name xdrone \
-v /data/drone:/data/docker/drone \
-e DRONE_AGENTS_ENABLED=true \
-e DRONE_GITEA_SERVER="http://192.168.8.10:3000" \
-e DRONE_GITEA_CLIENT_ID="3f612e74-7964-49d7-89bf-0833d1c92851" \
-e DRONE_GITEA_CLIENT_SECRET="D5UiYQNNFeZJStB6iHVcedrZpKd3LjrTOMdT4Fj7xyJ2" \
-e DRONE_RPC_SECRET="29080549923228e4cdb2" \
-e DRONE_SERVER_HOST=192.168.8.10:8889 \
-e DRONE_TLS_AUTOCERT=false \
-e DRONE_SERVER_PROTO=http \
-v /etc/localtime:/etc/localtime:ro \
drone/drone:latest
- DRONE_GITEA_SERVER=https://git.ffis.me
# Gitea OAuth2客户端ID
- DRONE_GITEA_CLIENT_ID=aaaaaaaaaaa-8888-8888-8888-fffffffffffff
# Gitea OAuth2客户端密钥
- DRONE_GITEA_CLIENT_SECRET=aaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbffffffff
# drone的共享密钥
- DRONE_RPC_SECRET=asdfsadfasdfsadfsadfasdf
# drone的主机名
- DRONE_SERVER_HOST=my-drone
# 外部协议方案
- DRONE_SERVER_PROTO=https
# 创建管理员账户,这里对应为gitea的用户名已弃用
// - DRONE_USER_CREATE=username:noisky,admin:true
-
Runne安装:使用 drone/drone-runner-docker:latest 版本镜像,将 docker 启动句柄挂载到容器 /var/run/docker.sock 文件中, 以便 drone 可以使用 docker-runner 来执行镜像构建任务。环境变量中需要配置 drone server 的端口协议以及共享密钥,以便与 server 进行通信。
docker run -d --name xearunner \
-v /var/run/docker.sock:/var/run/docker.sock \
-e DRONE_RPC_PROTO=http \
-e DRONE_RPC_HOST=172.17.0.5:80 \
-e DRONE_RPC_SECRET="29080549923228e4cdb2" \
-e DRONE_RUNNER_CAPACITY=2 \
-e DRONE_RUNNER_NAME=drone02 \
-v /etc/localtime:/etc/localtime:ro \
drone/drone-runner-docker:latest
确保已连接上
浏览器输入 http://192.168.8.10:8889 跳出以下画面点击授权即可
回到gitea上
准备一个.drone.yml文件
设置项目为公开
测试一下
官网参考
https://docs.drone.io/server/provider/gitea/