我熟悉Bamboo,但对gitlab ci还是陌生的,我已经尝试过gitlab几次,发现gitlab的主要优势是自动克隆git存储库。
棘手的是gitlab ci甚至可以将存储库自动克隆到Docker容器。
我的git仓库:
.git
.gitlab-ci.yml
foobar.sh
这项工作:
job1:
stage: run
image:
name: my_image
script:
- ./foobar.sh
- some other scripts within the docker
可以成功运行。
日志显示拉出my_image之后,有一个git clone操作,就像另一个SO answer所说的那样。但是日志不够详细,无法让我知道此命令的触发位置(我不是gitlab ciRunner的所有者,因此,如果有必要,则无法控制日志的详细级别)。
所以我的问题:
git clone
命令在docker内部还是外部运行?如果在外部,目录何时何地挂载到docker?
我已经读过docs,但找不到任何地方可以解释上述机制。
答案 0 :(得分:0)
看,gitlab运行器拉出图像并旋转一个容器。然后从容器内部执行该gitlab存储库的git克隆(由gitlab运行程序执行)。它不是从外面来的,什么也没装。它仅与管道所属的存储库一起使用。
如果要克隆另一个仓库,则必须手动将其烘焙到图像中,或者告诉gitlab运行程序执行另一个git克隆。
script:
- git clone https://github.com/bluebrown/dotfiles
我认为,当容器中未安装git时,会引起问题。