根据官方文档,发现最常用的 drone runner 就是 runner-docker,用了几天,也基本上都能满足需求.
在看了下还有 runner-ssh 和 runner-exec 适用于非隔离环境,直接在宿主机执行一些 shell 命令的需求.不过官方也提示风险.于是尝试试了下,发现遇到坑了,Google 上查了很久也没有解决方案.
按照官方教程安装到 Linux 上,查看日志正常, .drone.yml 里配置 type: exec 也能正常激活工作流,但是第一步 clone 就提示失败,这个问题只有私有仓库才会出现,但是共有仓库就没问题.
同样按照官方教程起的容器,也配置成功,.drone.yml 里配置 type: ssh 也正常激活工作流,但是直接报错.官方提示需要 openssh 7.9 及以上版本,我在 debian ubuntu 都是 8.4 版本,也不行. 这个错误感觉是整个工作流都无法执行,我尝试在 yml 里 disable clone,这个错误就变成下一步 greet skipped
1
caotian 2022-01-30 11:44:47 +08:00
runner 启动的时候有几个参数控制日志显示的,默认是比较简单的日志,把他们全部打开,可以看到它跟服务端通信,以及运行的报错等详细信息。
|
2
joesonw 2022-01-30 11:54:40 +08:00 via iPhone
那么大几个字,could not read username 。盲猜是因为跑在宿主机上的原因,git credentials 没下发。可以在 repo url 里加上用户名密码试试。
|
3
stille OP @joesonw 按道理是通过 drone 和 gitea 关联的 token 来拉取私有仓库,毕竟 ruuner-docker 就没这个问题,两者都是容器起的,变量配置都是一样
|
4
stille OP @caotian runner-ssh 日志
``` time="2022-01-30T04:07:40Z" level=trace msg="http: no content returned: re-connect and re-try" time="2022-01-30T04:07:40Z" level=trace msg="http: no content returned: re-connect and re-try" time="2022-01-30T04:07:40Z" level=trace msg="http: no content returned: re-connect and re-try" time="2022-01-30T04:07:40Z" level=trace msg="http: no content returned: re-connect and re-try" time="2022-01-30T04:08:03Z" level=debug msg="stage received" stage.id=186 stage.name=default stage.number=1 thread=3 time="2022-01-30T04:08:03Z" level=debug msg="stage accepted" stage.id=186 stage.name=default stage.number=1 thread=3 time="2022-01-30T04:08:03Z" level=debug msg="stage details fetched" build.id=186 build.number=39 repo.id=14 repo.name=test repo.namespace=stilleshan stage.id=186 stage.name=default stage.number=1 thread=3 time="2022-01-30T04:08:03Z" level=debug msg="updated stage to running" build.id=186 build.number=39 repo.id=14 repo.name=test repo.namespace=stilleshan stage.id=186 stage.name=default stage.number=1 thread=3 time="2022-01-30T04:08:20Z" level=trace msg="http: no content returned: re-connect and re-try" time="2022-01-30T04:08:20Z" level=trace msg="http: no content returned: re-connect and re-try" time="2022-01-30T04:08:20Z" level=trace msg="http: no content returned: re-connect and re-try" time="2022-01-30T04:08:20Z" level=trace msg="http: no content returned: re-connect and re-try" time="2022-01-30T04:08:23Z" level=debug msg="updated stage to complete" build.id=186 build.number=39 repo.id=14 repo.name=test repo.namespace=stilleshan stage.id=186 stage.name=default stage.number=1 thread=3 time="2022-01-30T04:08:23Z" level=debug msg="request stage from remote server" thread=3 time="2022-01-30T04:08:23Z" level=trace msg="http: context canceled" time="2022-01-30T04:08:23Z" level=debug msg="done listening for cancellations" build.id=186 build.number=39 repo.id=14 repo.name=test repo.namespace=stilleshan stage.id=186 stage.name=default stage.number=1 thread=3 ``` |
5
stille OP @caotian runner-exec 日志
被 v2 提示: 请不要在每一个回复中都包括外链,这看起来像是在 spamming 日志截图 https://pic.ioiox.com/images/2022/01/30/8e2a7368671d4554e8a6bd0fc22ca9ea.jpg |
6
jh163888 2022-01-30 15:00:41 +08:00 via Android
不懂帮顶🤣
|
7
defunct9 2022-01-31 08:00:00 +08:00 via iPhone
开 ssh ,让我上去看看
|
8
IvanLi127 2022-01-31 10:13:53 +08:00 via Android
用是用 就是没遇到类似问题。clone 仓库的话,你要不试下 ssh 的那种,不要用 http 的
|