首页 > 解决方案 > yml 文件中的 docker 映像存在一些问题。在 gitlab 中添加新运行器后无法运行我的管道

问题描述

我已将我的项目配置为在管道上运行这是我的 .git.yml 文件内容:

image: markhobson/maven-chrome:latest

stages:
  - flow1

execute job1:
  stage: flow1
  tags:
    - QaFunctional
  script:
    - export
    - set +e -x
    - mvn --update-snapshots --define updateResults=${updateResults}  clean test

执行管道后出错:

bash: line 328: mvn: command not found
Running after_script
00:00
Uploading artifacts for failed job
00:00
ERROR: Job failed: exit status 127

任何人都可以帮我找出错误吗?那是无法加载 docker 映像吗?当我使用共享跑步者时,我可以执行相同的操作。

标签: dockerkubernetesgitlab

解决方案


你得到的错误意味着作业执行器上没有安装 mavenmvn: command not found

看起来您指定的图像image: markhobson/maven-chrome:latest具有 maven 命令:

# docker run markhobson/maven-chrome:latest mvn --version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)

您指定的其他内容是tags

...
  tags:
    - QaFunctional
...

因此,当在您的 yaml 中同时指定image和时,优先考虑并被忽略。tagstagsimage

看起来您的自定义运行程序标记QaFunctional为未配置 mvn 的 shell 运行程序。

作为解决方案,要么在 docker runner 上安装 mvnQaFunctional或在 docker runner 上运行作业(应该共享运行器)。为避免这种混淆,请不要指定image何时要在标记的 shell 运行器上运行作业。


推荐阅读