【问题标题】:how to use different docker images for running scripts per stage?如何使用不同的 docker 镜像在每个阶段运行脚本?
【发布时间】:2018-12-03 15:03:44
【问题描述】:

像这样从 .gitlab-ci.yml 开始:

image: docker:latest
services:
  - docker:dind

stages:
  - stage1
  - stage2

doStage1:
  stage: stage1
script:
  - docker build -t <container> .
  - docker push <container>
only:
  - master

doStage2:
  stage: stage2
  image: alpine:latest
  script:
    script:
     - cat /etc/os-release
only:
  - master

我原以为 stage2 是在 alpine docker 映像上运行的,但事实并非如此,cat 命令的输出向我显示:

$ cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.4 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.4 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial

这是gitlab runner os,我在这里误解了什么?来自 gitlab ci docs 说我们可以在每个阶段使用不同的 docker 图像

【问题讨论】:

    标签: gitlab gitlab-ci


    【解决方案1】:

    如果有人对这个问题感兴趣,我终于弄清楚发生了什么。 gitlab 运行器配置了 shell 执行器而不是 docker 执行器,因为它无法处理 image: property。

    我用 docker executor 配置了另一个运行器,一切都按预期工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-04
      • 1970-01-01
      • 1970-01-01
      • 2022-12-22
      • 1970-01-01
      • 2022-10-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多