【发布时间】:2019-03-09 14:15:03
【问题描述】:
我不明白file.gitlab-ci.yml中关键字image和services的作用机制。我们什么时候知道关键字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