从.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在高山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
哪个是gitlabRunner OS,我在这里误解了什么?来自gitlab ci docs的消息说,我们可以在每个阶段使用不同的docker映像
答案 0 :(得分:2)
如果有人对此问题感兴趣,最后我弄清楚了正在发生的事情。 gitlab运行程序配置了 shell 执行程序而不是 docker 执行程序,因为它无法处理image:属性。
我为另一个跑步者提供了docker executor,一切正常。