gitlab - 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 忽略了“图像”。我该如何解决?
解决方案
当你想在 docker 中使用 Gitlab Runner 时,你必须使用docker
executor而不是shell
executor。
使用shell
executor时,只能在运行 executor 的机器上本地运行命令。
我假设它正在共享运行器上工作,因为它可能有一个 docker 执行器。
推荐阅读
- apache-kafka - 您是否需要多个 zookeeper 实例来运行多代理 kafka?
- eclipse - 如何增加 Websphere 8.5.5 的启动超时在 Intellij 中,我知道在 Eclipse 中我们可以双击服务器?
- swagger - fastapi[openapi.json]- 招摇分页问题
- c# - 如何使用 MassTransit 从 RabbitMQ 代理接收集成事件?
- node.js - 刷新页面后本地存储数据重置
- sql - 使用中间的连接表查找不与另一个模型关联的对象
- c++ - 具有可变基数的 CRTP 模式
- babeljs - babel-loader 不能处理多行字符串?
- terraform - 如果在 Terraform 中未使用任何变量,则能够确定项目范围
- python - 在 python 中分配和读取大数字会产生不同的结果