【问题标题】:gitlab ci yml image and services mechanism?gitlab ci yml 图像和服务机制?
【发布时间】:2019-03-09 14:15:03
【问题描述】:

我不明白file.gitlab-ci.yml中关键字imageservices的作用机制。我们什么时候知道关键字script的命令是在哪个图像上执行的?

当我阅读 gitlabci 文档时,我很好地理解了关键字“图像”和“服务”的理论,所以我已经完成了测试并设法通过 wget 与httpd 服务进行交互,但是,在练习我无法理解图像的用途?

让我解释一下:)

首先,我创建了一个结构,其作业通过不声明任何图像来生成“uname -a”:

job_scriptWithDefaultImage:
  stage: gitlabtest1
  script:
    - uname -a

然后结果显示在跑步机上运行的“uname -a”:

$ uname -a
Linux runner-b41b332f-project-9060-concurrent-0 4.4.0-104-generic #127-Ubuntu SMP Mon Dec 11 12:16:42 UTC 2017 x86_64 Linux

然后我只需在我的工作中添加一张图片,指定我想使用阿尔卑斯山:

job_scriptWithAlpineImage:
  internship: gitlabtest2
  image: registry.hub.docker.com/library/alpine:latest
  script:
    - uname -a

结果一模一样,uname总是跑在runner上,而不是我的alpine...

$ uname -a
Linux runner-9cade5e3-project-9060-concurrent-0 4.4.0-130-generic #156-Ubuntu SMP Thu Jun 14 08:53:28 UTC 2018 x86_64 GNU/Linux

所以我完全不明白:

  • 我的图片有什么用?
  • 如何在我的管道作业script 部分中执行该图像中的命令?

【问题讨论】:

    标签: image docker service yaml gitlab-ci


    【解决方案1】:

    Docker 使用主机的内核。正如您在uname -a 输出中看到的那样,它提供了跑步者的机器信息。这就是为什么无论容器如何,您都会获得相同的输出。你甚至可以在你的机器上试一试。

    https://stackoverflow.com/a/31012367/4551937

    关于 Gitlab Runner,您的 service 是独立的。它将附加并提供给您调用它的作业,就好像它在它旁边运行一样。

    您的作业将使用您指定的带有image 标签的图像来运行script 中列出的命令(您可以将它们链接起来)。如果未指定图像,它将采用运行器配置中定义的默认图像(可能是 Ubuntu)。

    【讨论】:

    • 我知道在主机(运行器)上找到的任何命令都将被使用而不是图像命令,是否有优先级的概念?例如,如果我执行 uname -a,则在您解释时由跑步者回答,但是如果我执行 apt update,则执行命令的图像是在图像上。我如何确定我启动的命令是从映像启动的,而不是从主机启动的?是否有系统命令列表,还是我应该盲目相信dock runner并告诉自己只要它有效,我就没有什么要理解的了?我们真幸运:)
    • 那不是跑步者在回答,那是容器,而是读取跑步者的内核。 docker runner 有一个设置的配置,它要么是 docker runner,要么是 shell (如果我记得的话,默认为第一个,可能有一个混合模式,但我认为他们放弃了它)。你不需要“信任”任何东西,因为它会做你配置它做的事情;)另外:如果你可以避免它,不要在你的容器中运行apt-get,你每次运行都会浪费时间你的工作。只需使用每个安装的依赖项构建一个缓存图像。
    • 好的,谢谢,我现在明白了很多! (apt update 只是用于示例)。根据您的回答,我进行了更多测试,我终于明白了谁在启动什么以及以什么顺序启动 :) 感谢您解开我的理解,太糟糕了,文档不如您的回答准确:)
    猜你喜欢
    • 2021-05-06
    • 1970-01-01
    • 2018-12-15
    • 1970-01-01
    • 1970-01-01
    • 2017-08-27
    • 2022-10-25
    • 2018-02-02
    • 2021-06-20
    相关资源
    最近更新 更多