2

我对 Bamboo 很熟悉,但对 gitlab ci 很陌生,我用 gitlab 尝试过几次,发现 gitlab 的一个关键优势是git repository 的自动克隆

棘手的部分是 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回答所说的那样。但日志不够详细,无法让我知道触发此命令的位置(我不是 gitlab ci runner 的所有者,因此无法控制日志详细级别,如果重要的话)。

所以我的问题:

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

    我已阅读文档,但没有找到任何解释上述机制的地方。

4

1 回答 1

2

看,gitlab runner 拉取图像并启动一个容器。然后从容器内部,执行该 gitlab 存储库的 git 克隆(由 gitlab 运行器)。它不是来自外部,也没有安装任何东西。它仅适用于管道所属的存储库。

如果您想克隆另一个 repo,您​​必须手动完成,方法是预先将其烘焙到您的图像中,或者告诉 gitlab 运行器执行另一个 git clone。

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

我假设,当容器中没有安装 git 时,它会导致问题。

于 2019-02-13T17:17:28.650 回答