gitlab - 无法从脚本注册 gitlab runner?
问题描述
我正在尝试使用脚本自动注册在本地 docker 环境中运行的跑步者。脚本以非交互方式运行注册,如下所示:
gitlab-runner -l debug register --non-interactive --url $GITLAB_URL --registration-token $TOEKN \
--executor docker --docker-image python3 --name TestRunner --docker-pull-policy always \
--locked=false --run-untagged=false --docker-privileged=false \
--limit 0 \
--tag-list general,test
在以交互方式成功完成时,我仍然无法使用此脚本注册跑步者。使用上面的命令注册跑步者时出现的错误:
Runtime platform arch=amd64 os=linux pid=57 revision=05161b14 version=12.4.1
Checking runtime mode GOOS=linux uid=0
Running in system-mode.
Dialing: tcp gitlab.com:443 ...
ERROR: Registering runner... forbidden (check registration token) runner=--execut
PANIC: Failed to register this runner. Perhaps you are having network problems
使用非交互式脚本而不是交互式方法时导致注册失败的区别是什么?
解决方案
问题是读取注册令牌变量本身。因此,通过首先将其读入带引号的变量,它变得可用:
t="$TOKEN"
gitlab-runner -l debug register --non-interactive --url ${GITLAB_URL} --registration-token ${t} \
--executor docker --docker-image python3 --name TestRunner --docker-pull-policy always \
--locked=false --run-untagged=false --docker-privileged=false \
--limit 0 \
--tag-list general,test
推荐阅读
- blazor - Razor 组件如何与服务器应用程序通信
- postgresql - 如何处理热备副本和服务器端游标问题
- angular - ElementRef 和@ViewChild,不推荐?
- unix - 在远程机器上执行代码的最佳方式
- ejabberd - 在 muc_filter_message 挂钩中检索时间戳值
- iis - 在 9LTS 中重写说话 URL 是否应该在 IIS 上开箱即用?
- java - 遍历 Map 的 ArrayList 的 ArrayList
- javascript - ExtJS - 将 Ajax 响应变量存储为全局
- python - 如何生成绘图,暂停程序直到图形关闭,然后返回主函数
- python - PyQT CloseEvent 函数:主窗口消失