drone 构建一直卡住,心力憔悴

227 天前
 knightgao2
drone 也是在站内看到的,觉得 jenkins 太丑了,想换个新的试试。
## docker-compose.yml
services:
drone:
image: drone/drone:2
container_name: drone
restart: always
ports:
- "443:443"
volumes:
- ./data:/data
- ./ssl:/etc/ssl:ro # 将 SSL 证书文件挂载到容器中
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
environment:
- DRONE_USER_CREATE=username:admin,admin:true
- DRONE_GITEA_SERVER=https://XXXXXX
- DRONE_GITEA_CLIENT_ID=XXXXXX
- DRONE_GITEA_CLIENT_SECRET=XXXXX
- DRONE_RPC_SECRET=970106f1f4bb07fa1ab0589a6df09b51
- DRONE_SERVER_HOST=drone.XXXXXX.cn
- DRONE_TLS_CERT=/etc/ssl/your_certificate.pem # 指向证书文件路径
- DRONE_TLS_KEY=/etc/ssl/your_private_key.key # 指向私钥文件路径
- DRONE_SERVER_PROTO=https
- DRONE_LOGS_DEBUG=true

runner:
image: drone/drone-runner-docker:latest
container_name: drone-runner-445
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
environment:
- DRONE_RPC_PROTO=https
- DRONE_RPC_HOST=drone.XXXXXX.cn
- DRONE_RPC_SECRET=970106f1f4bb07fa1ab0589a6df09b51
- DRONE_RUNNER_CAPACITY=4
- DRONE_RUNNER_NAME=drone-runner-445
- DRONE_RUNNER_LABELS=type:docker
- DRONE_LOGS_DEBUG=true
- DRONE_RPC_INSECURE=true

## drone.yml
kind: pipeline
type: docker
name: default

steps:
- name: hello
image: alpine
pull: if-not-exists
commands:
- echo "Starting build..."
- pwd
- ls -la
- echo "Hello World"
- echo "Build completed"

trigger:
branch:
- main
event:
- push
- pull_request
- tag
- schedule
- custom
## 故障
可以触发新的 build,但是一直卡住,把对应的包加载到服务器了,但是一直 Step is pending ,卡住了
ubuntu@VM-4-13-ubuntu:~$ sudo docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
alpine latest b0c9d60fc5e3 12 days ago 7.83MB
drone/drone 2 649ae58d4a6a 2 months ago 59.2MB
drone/drone-runner-docker latest e2de942d714a 15 months ago 26MB
drone/drone-runner-docker 1 42f73cc80149 2 years ago 25.7MB
drone/git latest b263385b74bd 2 years ago 198MB
drone/drone-runner-ssh latest 59c90b8fb99d 2 years ago 19.5MB
3026 次点击
所在节点    DevOps
38 条回复
defunct9
227 天前
wx: defunct
knightgao2
227 天前
@defunct9 #21 加了
zidy111
227 天前
argo workflow CI/CD 一起搞定。
wu67
227 天前
volumes 不对. 定义的时候提到顶层. (host path 那个)
使用的时候(steps 下面的- name: hello 下面的 volumes), 只用到上面定义的名字, 这时的 path 是/drone/src/build .(确实挺绕的...)
Ayanokouji
227 天前
ci
研究 https://woodpecker-ci.org/docs/intro 吧,别研究 drone 了。
或者 gitlab ci
cd
没啥好用的
wu67
227 天前
@Ayanokouji 这玩意的优点就是省资源, 但是配置确实有点怪...尤其是挂载目录和路径那玩意. 公司的省钱测试服务器要是配置低, 几乎只有这个选择, gitlab 不够内存跑
knightgao2
227 天前
@wu67 #24 volumes 我理解不定义不会影响我卡住呀,最多没缓存,应该不是这个原因
wu67
227 天前
另外实在受不了各种奇葩配置的话, 可以考虑 express/koa 直接自己简单写几个接口 hook, 然后写个 shell script 744 让程序执行, 同样可以实现 cicd....一样可以启动 docker 镜像.
justdoit123
227 天前
完全没用过这个东西。猜测大概率 pending 在资源分配上,比如楼上说的 volumes 。

解决的思路还是要能找到对应日志出来看一看。要么找错地方,要么 logging 级别打印不够细(不过感觉不太可能)。OP 最后解决了,也分享下历程。

另外,同推荐直接在 k8s 里用 argo workflow CI/CD 一步到“胃”。有空的时候再去折腾。
knightgao2
227 天前
@knightgao2 #27 kind: pipeline
type: docker
name: default

volumes:
- name: cache
host:
path: /var/lib/cache

steps:
- name: hello
image: alpine
pull: if-not-exists
volumes:
- name: cache
path: /drone/src/build
commands:
- echo "Starting build..."
- pwd
- ls -la
- echo "Hello World"
- echo "Build completed"

when:
branch:
- main
event:
- push
- pull_request
- custom
等了几分钟还是噶了
wu67
227 天前
你试试把 drone runner 的 3000 端口绑定出来, 实时看一下卡住的时候 runner 在搞什么飞机.
presoul
227 天前
ci 文件没问题 我帮你试过了
![图片描述]( https://ibb.co/LJSHCvk)
HAWCat
227 天前
因为你的 runner 设置了 DRONE_RUNNER_LABELS
所以你的 .drone.yml 要加上
`
node:
type:docker
`
knightgao2
227 天前
@HAWCat 妙手啊,来个微信给你转红包
HAWCat
227 天前
抱歉,没格式化好

像这样

HAWCat
227 天前
@knightgao2 #34 问题解决了就行 😘 哈哈, 红包就不用啦. 恰好我也用过 drone, 有问题可以随时交流
defunct9
227 天前
不用谢我,我正看 container 日志呢,啥也没抛出,就被人解决掉了。
- DRONE_RUNNER_LABELS=type:docker
这个标签的问题。
jianrenjun
226 天前
最近用的 gitea 的 action 还可以 直接改改 github action 的配置就能用已经在公司内部小范围替换 jenkins(他太吃内存了)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1106817

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX