gitlab ci如何将仓库复制回docker?

时间:2019-02-13 02:29:04

标签: docker continuous-integration gitlab gitlab-ci

我熟悉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的所有者,因此,如果有必要,则无法控制日志的详细级别)。

所以我的问题:

  1. git clone命令在docker内部还是外部运行?
  2. 如果在里面,谁触发了它? docker run的完整命令是什么??
  3. 如果在外部,目录何时何地挂载到docker?

    我已经读过docs,但找不到任何地方可以解释上述机制。

1 个答案:

答案 0 :(得分:0)

看,gitlab运行器拉出图像并旋转一个容器。然后从容器内部执行该gitlab存储库的git克隆(由gitlab运行程序执行)。它不是从外面来的,什么也没装。它仅与管道所属的存储库一起使用。

如果要克隆另一个仓库,则必须手动将其烘焙到图像中,或者告诉gitlab运行程序执行另一个git克隆。

script:
    - git clone https://github.com/bluebrown/dotfiles

我认为,当容器中未安装git时,会引起问题。