以Shell执行程序和Docker映像为基础的Gitlab CI

时间:2019-10-28 22:21:41

标签: docker gitlab gitlab-ci

我在使用docker image的gitlab-ci时遇到麻烦。在互联网上进行了大量搜索,但仍然感到困惑。

问题:我需要使用docker image作为gitlab ci构建的基础。

我正在使用shell executor,并且在我的gitlab-ci.yml中,我定义了如下图像:

image: "registry.gitlab.com/my_projects/my_repo:latest"

我将此docker映像推送到gitlab注册表。它包含构建所需的核心库(ruby,node,npm等)

我还在gitlab-runner / config.toml文件中定义了[runners.docker]设置, 其中包含以下几行:

[[runners]]
  executor = "shell"
  [runners.docker]
    services = ["registry.gitlab.com/my_project/my_repo:latest"]

问题在于gitlab-runner会忽略该图像。

这是我使用的教程:

https://dev.to/zimski/the-complete-guide-to-setup-a-cicd-for-rails-5-on-gitlab-2f2d

是否可以在gitlab-ci中将docker image用作shell executor的基础?

1 个答案:

答案 0 :(得分:0)

使用shell执行程序时,将像手动运行该shell一样执行作业。如果您随后要使用docker映像进行构建,则只需像在shell中使用docker映像进行构建时手动进行的操作即可。

从编写方式来看,您想在.gitlab-ci.yml文件中使用image标签,并且正在设置[runners.docker]设置,这听起来像是您想使用泊坞窗执行器。注册运行程序时,可以选择此选项而不是shell执行程序。您可以在此处找到有关执行人的更多信息:

https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-executors