当命令失败时,如何检查GitLab runner中使用了哪个映像?

当命令失败时,如何检查GitLab runner中使用了哪个映像?,gitlab,gitlab-ci,gitlab-ci-runner,Gitlab,Gitlab Ci,Gitlab Ci Runner,我有一个多级CI/CD设置,它使用默认映像(运行程序托管在我的服务器上) 我需要一个阶段来使用特定映像(MQTT客户机发送单个MQTT消息,但这并不重要): 在重新加载阶段之前,一切都会平稳运行: Running with gitlab-runner 12.2.0 (a987417a) on srv zN2MsS9q Using Shell executor... Running on srv... Fetching changes... Reinitialized existing Git

我有一个多级CI/CD设置,它使用默认映像(运行程序托管在我的服务器上)

我需要一个阶段来使用特定映像(MQTT客户机发送单个MQTT消息,但这并不重要):

在重新加载阶段之前,一切都会平稳运行:

Running with gitlab-runner 12.2.0 (a987417a)
  on srv zN2MsS9q
Using Shell executor...
Running on srv...
Fetching changes...
Reinitialized existing Git repository in /home/gitlab-runner/builds/zN2MsS9q/0/wsw70-docker/dash/.git/
Checking out 7d19cb65 as master...
Skipping Git submodules setup
$ pub -h mqtt.mudomain -t dash/reload -m "`date`"
bash: line 82: pub: command not found
ERROR: Job failed: exit status 1
pub
在此图像中未被识别为命令。但它确实存在,因为以下命令已成功执行:

docker run --init -it --rm efrecon/mqtt-client pub -h mqtt.mydomain -t dash/reload -m "`date`"
如果我启动
bash
并从那里运行
pub
,也会成功

所有这些让我想知道image
efrecon/mqtt客户机是否在该阶段实际使用。我怎么能检查呢


额外问题:如果正确使用映像,那么
pub
命令会出什么问题?

由于正在使用作业输出第3行所述的
shell
运行程序,因此
efrecon/mqtt客户机
映像不会用于重新加载作业:

使用Shell执行器…


您的运行程序似乎只配置为一个,也应该配置。

重新加载作业不使用
efrecon/mqtt客户端
映像,因为它使用的是作业输出第3行所述的
shell
运行程序:

使用Shell执行器…


您的runner似乎只配置为一个,也应该配置。

将完整的文件路径放置到
pub
位于
.gitlab ci.yml
文件中的位置时会发生什么?ie
/usr/local/bin/pub
或它所在的任何地方?@Rekovni:好主意,但错误是相同的(
bash:line 82:/usr/local/bin/pub:没有这样的文件或目录
pub
确实位于
/usr/local/bin
)如果将完整文件路径放到
.gitlab ci.yml
文件中的
pub
位置,会发生什么情况?ie
/usr/local/bin/pub
或任何地方?@Rekovni:好主意,但错误是一样的(
bash:line 82:/usr/local/bin/pub:没有这样的文件或目录
pub
确实在
/usr/local/bin
)谢谢Stefan。你的回答让我重新思考了我的整个设置——我意识到我正在运行运行runner的主机上可用的命令,根本没有使用docker图像。我会考虑切换到DOCKER执行器,但这将带来一些问题,在访问<代码> DOCKER撰写< /代码>配置我访问通过<代码> -F /代码>开关。谢谢斯特凡。你的回答让我重新思考了我的整个设置——我意识到我正在运行运行runner的主机上可用的命令,根本没有使用docker图像。我会考虑切换到DOCKER执行器,但这将带来一些问题,在访问<代码> DOCKER撰写< /代码>配置我访问通过<代码> -F /代码>开关。
docker run --init -it --rm efrecon/mqtt-client pub -h mqtt.mydomain -t dash/reload -m "`date`"