gitea: Gitea Official Website
drone server: https://docs.drone.io/server/overview/
drone runner: https://docs.drone.io/runner/overview/
安装 drone server (基于 gitea)
文档: https://docs.drone.io/server/provider/gitea/
第一步, 在 gitea 添加 OAuth2 Applications
这里的 URL,填写 drone server 的部署地址. 域名/IP 都可以,如果是 docker 部署,这里不要写 127.0.0.1 这种回环地址,需要写 192.168 这类局域网地址.
记住 Client ID 和 Client Secret
第二步 Create a Shared Secret
openssl rand -hex 16068a98df4700ad90ed646e1f716e42d9
第三步 docker 部署 drone server
docker pull drone/drone:2
docker-compose.yml
version: "3.8"
services: drone-server: image: drone/drone:2 container_name: drone restart: always ports: - "33000:80" - "33001:443" volumes: - ./data:/data environment: - DRONE_GITEA_SERVER=http://192.168.50.106:3300/ # 替换为你的 Gitea 服务器地址 - DRONE_GITEA_CLIENT_ID=75f3afac-d66e-410c-9262-ec1ad78cf7cb # 替换为你的 Gitea OAuth Client ID - DRONE_GITEA_CLIENT_SECRET=gto_hbdmxg2gfuifnqf3navblqmwlcwfbjyvhecyjk7bg44xua3v23ta # 替换为你的 Gitea OAuth Client Secret - DRONE_RPC_SECRET=068a98df4700ad90ed646e1f716e42d9 # 替换为你的 RPC Secret - DRONE_SERVER_HOST=192.168.50.106:30000 # 替换为你的外部主机名或 IP 地址 - DRONE_SERVER_PROTO=http # 根据需要设置为 http 或 https
安装 drone runner (docker)
https://docs.drone.io/runner/docker/installation/linux/
version: '3.8'
services: runner: image: drone/drone-runner-docker:1 container_name: runner restart: always ports: - "33100:3000" environment: - DRONE_RPC_PROTO=http # drone server 的部署协议 - DRONE_RPC_HOST=192.168.50.106:33000 # drone server 的地址 - DRONE_RPC_SECRET=068a98df4700ad90ed646e1f716e42d9 # rpc secret, 与 drone server 中的配置对应 - DRONE_RUNNER_CAPACITY=2 # 可以并行执行的 runner 数量 - DRONE_RUNNER_NAME=runner-docker1 # runner 名称 - DRONE_RUNNER_LABELS=node1:docker1 # runner tag - DRONE_UI_USERNAME=root # UI 界面登录用户名 - DRONE_UI_PASSWORD=root - DRONE_UI_DISABLE=false # 是否支持 http UI 界面,可以通过 ports 配置的端口来访问 - DRONE_DEBUG=true - DRONE_TRACE=true volumes: - /var/run/docker.sock:/var/run/docker.sock
安装 drone runner (exec)
有个问题是, docker 中的 runner 只能基于 docker 虚拟环境来运行,有些场景需要基于本地原生的 Windows 来执行,这就需要 drone-runner-exec
https://docs.drone.io/runner/exec/installation/windows/
但是, drone-runner-exec 已经长时间不维护了,而且最后的版本,测试使用也没有成功.
有个思路是自己写一个来做中转. 在本地 Windows 运行一个服务,运行 docker runner,在 docker runner 中调用这个本地 Windows 运行的服务. 但是有点折腾.
使用
在代码仓库中,编写 .drone.yml
(也可以自定义,在 drone 中配置)
原文链接: https://blog.jgrass.cc/posts/drone-gitea-startup/
本作品采用 「署名 4.0 国际」 许可协议进行许可,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。