Drone-CI 運行時的指定runner
最近群里小伙伴問了個 drone ci 的問題

是我不曾想到的場景, 由于我使用的是三塊樹莓派4b, 性能上沒有區別, 所以在使用的時候就沒考慮過指定在哪一塊的runner上運行, 反正都差不多
各個服務的管理是通過k3s做的, 也就用runner打個鏡像推送到nexus3上而已
但是在實際的場景中可能會有各種各樣的情況:
- runner 宿主配置差距大, 個別鏡像放到孱弱的機器上打包會浪費時間造成流程阻塞
- 不同runner對應不同OS, 蘋果應該可以摻一腳
- 不同機器擁有不同的鏡像快取, 可以加快打包速度
- steps中包含具體部署的部分, 可以直接將服務部署到任務分發的機器上
- 甚至有可能針對不同時區專門配置了不同的runner
- ......
這樣看下來, 根據需要自由選擇runner就非常有意義了
重建runner
首先洗掉原來的runner
然后使用類似下面的命令創建一個新的runner
docker run -itd \
-v /var/run/docker.sock:/var/run/docker.sock \
-e DRONE_RPC_PROTO=${drone_proto} \
-e DRONE_RPC_HOST=${drone_server} \
-e DRONE_RPC_SECRET=${drone_rpc_secret} \
-e DRONE_RUNNER_CAPACITY=2 \
-e DRONE_RUNNER_NAME=${HOSTNAME} \
-e DRONE_LOGS_TRACE=true \
-e DRONE_AGENTS_ENABLED=true \
-e DRONE_RUNNER_LABELS=a:b,c:d \
-p 3000:3000 \
--restart always \
--name runner \
drone/drone-runner-docker
與官方檔案不同的是, 這里增加了一行
-e DRONE_RUNNER_LABELS=a:b,c:d
其中的 a:b,c:d 兩個鍵值對作為 標識, 可以根據實際情況自己定義, 只要遵循 {Key1}:{Value1},{Key2}:{Value2} 的格式即可
修改yml
在yml中可以根據上面的 標識 指定運行時的runner
kind: pipeline
type: docker
name: default
node:
a: b
c: d
steps:
- name: ****
......
大概差不多就是這個樣子
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/501648.html
標籤:其他
下一篇:你的團隊作業量飽和嗎?
