【问题标题】:Speed up Gitlab CI reusing docker machine for stages加快 Gitlab CI 重用 docker 机器的阶段
【发布时间】:2017-05-13 14:25:52
【问题描述】:

Gitlab CI 每次都会为每个任务(阶段)拉取 docker 镜像。这个操作浪费了很多时间。如果可能,我想优化。

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

【问题讨论】:

  • 它不应该每次都拉图像,除非它们已经改变。你是如何配置跑步者的?
  • 只能通过配置文件.gitlab-ci.yml
  • 这就是您配置管道的方式,而不是运行器。你在使用 gitlab.com 提供的共享运行器吗?
  • 是的,全部默认。
  • 好吧,在这种情况下,您应该设置自己的跑步者。如果 gitlab 的服务器负载很高,它将保留图像,并且您的作业也不必排队。

标签: docker optimization gitlab gitlab-ci gitlab-ci-runner


【解决方案1】:

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

正如 Jakub 在问题的 cmets 中强调的那样,在 Gitlab.com 上的共享运行器上,策略设置为 always,因此它总是会下载图像的新副本,即使本地有相同的副本。

这是出于安全原因。

您可以在doc 中确认。

如果您的 Runner 是公开可用的,则应使用此拉取策略 并在您的 GitLab 实例中配置为共享 Runner。它是 仅当 Runner 将拉取可被视为安全的策略 与私有图像一起使用。

安全隐患是,如果运行程序首先检查本地映像,非授权用户可以通过猜测其名称获取私有 docker 映像

【讨论】:

    猜你喜欢
    • 2017-10-06
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 2019-09-21
    • 2016-11-19
    • 2022-01-11
    • 1970-01-01
    • 2022-06-10
    相关资源
    最近更新 更多