首页 > 解决方案 > gitlab-ci.yml 忽略私人跑步者中的 docker 图像

问题描述

好吧,我在我的 Digital Ocean VPS 中创建了一个私人跑步者。这个私人跑步者正在使用shell executor,这是我的 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}

但是在“测试”阶段,图像永远不会被拉出来,我得到“dotnet command not found”。但是,如果我更改为共享跑步者,一切正常。似乎 gitlab runner 忽略了“图像”。我该如何解决?

标签: gitlabgitlab-cigitlab-ci-runner

解决方案


当你想在 docker 中使用 Gitlab Runner 时,你必须使用dockerexecutor而不是shellexecutor。

使用shellexecutor时,只能在运行 executor 的机器上本地运行命令。

我假设它正在共享运行器上工作,因为它可能有一个 docker 执行器。


推荐阅读