首页 > 解决方案 > 为什么 gitlab-ci 默认为每个作业使用 git clone 而不是先构建一个 docker 镜像?

问题描述

Gitlab-ci 的默认模式是在管道中的每个作业中使用 git clone。这很耗时,尤其是在克隆后我们需要安装/更新所有依赖项。我想翻转我们管道的顺序,从 git clone + docker build 开始,然后使用该映像运行所有后续作业,而不为每个作业进行克隆和重建。

我错过了什么吗?如果我已经拥有包含当前代码的图像,是否有任何理由要为每个作业分别克隆存储库?

标签: dockergitlab-ci

解决方案


使用 CI 的原因之一是在新状态下执行你的 repo。如果您在某些作业中跳过 git clone 过程,则无法做到这一点。作业可以通过删除其文件或生成新文件来修改 repo 的状态;只有artifacts那些明确记录在管道中的应该在作业之间共享 - 没有别的。


推荐阅读