加速 Gitlab CI 重用 docker 机器进行阶段

Speed up Gitlab CI reusing docker machine for stages

Gitlab CI 每次为每个任务(阶段)拉取 docker 图像。这个操作浪费了很多时间。可以的话我想优化一下。

我看到两个地方可以使用:
1. 显式配置 CI 个阶段以重复使用相同的 docker 机器。
2. 在构建下一次提交时使用上一次提交的 docker 机器? (如果没有更改配置文件)。

这种配置可以通过运行器本身的 pull_policy 指定。

正如 Jakub 在问题评论中强调的那样,在 Gitlab.com 上的共享跑步者上,政策设置为 always,因此它将始终下载图像的新副本,如果有是本地同一份。

这是出于安全原因。

您可以在 doc 中确认这一点。

This pull policy should be used if your Runner is publicly available and configured as a shared Runner in your GitLab instance. It is the only pull policy that can be considered as secure when the Runner will be used with private images.

安全隐患是,如果运行者首先检查本地图像,则非授权用户可以通过猜测其名称

获得私有 docker 图像