在单个 Gitlab-CI 作业期间使用不同的 Docker 映像

Using different Docker images during a single Gitlab-CI job

提问人:Loopinfility 提问时间:11/17/2022 最后编辑:Loopinfility 更新时间:11/17/2022 访问量:132

问:

您好,我有一个关于在单个 gitlab-ci 管道作业下使用不同图像的特殊问题。最初我使用的是 maven 3.6.1-jdk-8,因为项目按照这些要求运行。我想做的是在运行脚本之前使用另一个图像 maven 3.6.3-jdk-11,以便 sonarqube 扫描仪能够正常运行并且不会失败。这两个映像都是作业所必需的。

sonarqube:
  image: maven:3.6.1-jdk-8
  variables:
    SONAR_USER_HOME: "${CI_PROJECT_DIR}/.sonar"  # Defines the location of the analysis task cache
    GIT_DEPTH: "0"  # Tells git to fetch all the branches of the project, required by the analysis task
  cache:
    key: "${CI_JOB_NAME}"
    paths:
      - .sonar/cache
  script:
    - mvn verify sonar:sonar -Dsonar.qualitygate.wait=true
  allow_failure: true
  only:
    - master         
图片: Maven sonarqube gitlab-ci

评论

0赞 GChuf 11/17/2022
你试过什么,你遇到了什么错误?
0赞 Loopinfility 11/17/2022
我尝试创建一个模板作业,然后将该作业扩展到 Sonarqube 作业。在模板作业中,我使用了我想要的图像,但问题是图像 maven:3.6.3-jdk-11 在实际作业之前正在运行。我想要的是首先运行我现在拥有的图像,然后完成运行下一个图像。此外,我正在考虑在运行实际脚本之前添加一个before_script命令来拉取适当的图像,但我不确定该怎么做。
0赞 GChuf 11/17/2022
不确定我是否完全理解,你想先运行哪一个?它们可以并行运行吗?您是否尝试过创建 2 个单独的工作,每个工作都有自己的形象?我不认为您可以运行一个作业并在其中使用 2 个图像,但我可能是错的。
0赞 Loopinfility 11/17/2022
首先,我想运行maven:3.6.1。如果有一种方法可以并行运行,它可能是解决问题的方法。我尝试过创建两个工作,但这不是我想做的。嗯,我一直在寻找解决方案,但似乎没有什么可用的

答: 暂无答案