docker - 为什么 gitlab-ci 默认为每个作业使用 git clone 而不是先构建一个 docker 镜像?
问题描述
Gitlab-ci 的默认模式是在管道中的每个作业中使用 git clone。这很耗时,尤其是在克隆后我们需要安装/更新所有依赖项。我想翻转我们管道的顺序,从 git clone + docker build 开始,然后使用该映像运行所有后续作业,而不为每个作业进行克隆和重建。
我错过了什么吗?如果我已经拥有包含当前代码的图像,是否有任何理由要为每个作业分别克隆存储库?
解决方案
使用 CI 的原因之一是在新状态下执行你的 repo。如果您在某些作业中跳过 git clone 过程,则无法做到这一点。作业可以通过删除其文件或生成新文件来修改 repo 的状态;只有artifacts
那些明确记录在管道中的应该在作业之间共享 - 没有别的。
推荐阅读
- python - Pandas 条件聚合和非条件聚合在一起
- rust - 如何拆分、去抖动和加入流?
- python - 一张图像内的关键点匹配
- microsoft-teams - 您可以在 Teams 选项卡中使用 Microsoft Graph Toolkit
- python-3.x - 为 MagickMock 设置返回值和测试 method_calls
- typescript - 如何在打字稿中拥有一个包含类型信息的全局可扩展对象?
- powerpoint - 引用现有 Excel 对象
- angular - Angular 8 中的路由器防护
- r - 如何在R中按行对数据进行排序
- sql - 使用分组结果从 Join 中删除重复项