gitlab-ci.yml 忽略私人跑步者中的 docker 图像
gitlab-ci.yml ignoring docker image in private runners
好吧,我在我的 Digital Ocean 中创建了一个私人跑步者 VPS。这个私人跑步者正在使用 shell 执行器,这是我的 gitlab-ci.yml 文件:
variables:
VERSION_NAME: ${CI_COMMIT_REF_NAME}-${CI_CONCURRENT_ID}
before_script:
- docker info
stages:
- test
- build
- deploy
- delivery
test_project:
tags:
- safepark
stage: test
image: mcr.microsoft.com/dotnet/core/sdk:2.1
script:
- dotnet test
build_image:
tags:
- safepark
only:
- master
stage: build
script:
- docker build -f WebApi/Dockerfile -t myuser/myimage
- docker tag -t myuser/myimage myuser/myimage:${VERSION_NAME}
push_image:
tags:
- safepark
only:
- master
stage: deploy
script:
- docker push myuser/myimage
- docker push myuser/myimage:${VERSION_NAME}
但在 "test" 阶段,图像从未被拉取,我得到了 "dotnet command not found"。但如果我换成共享跑步者,一切正常。似乎 "image" 被 gitlab runner 忽略了。我该如何解决?
当您想将 Gitlab Runner 与 docker 一起使用时,您必须 use the docker
executor 而不是 shell
执行程序。
当 using the shell
executor 时,您只能在 运行 作为执行者的机器上本地 运行 命令。
我假设它正在共享 运行ner 上工作,因为它可能有一个 docker 执行程序。
好吧,我在我的 Digital Ocean 中创建了一个私人跑步者 VPS。这个私人跑步者正在使用 shell 执行器,这是我的 gitlab-ci.yml 文件:
variables:
VERSION_NAME: ${CI_COMMIT_REF_NAME}-${CI_CONCURRENT_ID}
before_script:
- docker info
stages:
- test
- build
- deploy
- delivery
test_project:
tags:
- safepark
stage: test
image: mcr.microsoft.com/dotnet/core/sdk:2.1
script:
- dotnet test
build_image:
tags:
- safepark
only:
- master
stage: build
script:
- docker build -f WebApi/Dockerfile -t myuser/myimage
- docker tag -t myuser/myimage myuser/myimage:${VERSION_NAME}
push_image:
tags:
- safepark
only:
- master
stage: deploy
script:
- docker push myuser/myimage
- docker push myuser/myimage:${VERSION_NAME}
但在 "test" 阶段,图像从未被拉取,我得到了 "dotnet command not found"。但如果我换成共享跑步者,一切正常。似乎 "image" 被 gitlab runner 忽略了。我该如何解决?
当您想将 Gitlab Runner 与 docker 一起使用时,您必须 use the docker
executor 而不是 shell
执行程序。
当 using the shell
executor 时,您只能在 运行 作为执行者的机器上本地 运行 命令。
我假设它正在共享 运行ner 上工作,因为它可能有一个 docker 执行程序。