如何设置GitLab +运行器来缓存Docker层

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何设置GitLab +运行器来缓存Docker层相关的知识,希望对你有一定的参考价值。

我们有自己的gitlab回购。我们有自己的跑步者。

Hows做了一个设置跑步者和gitlab,以便能够缓存docker层。

以下是.gitlab-ci.yml文件的示例:

before_script:
  - docker version

test:
  stage: test
  script:
    - docker-compose -f docker-compose.yml build my_job
    - docker-compose -f docker-compose.yml down
    - docker-compose -f docker-compose.yml up --remove-orphans --force-recreate --abort-on-container-exit

我一直在努力阅读如何做到这一点,但所有的文档都是如此令人困惑。

https://gitlab.com/gitlab-org/gitlab-ce/issues/17861说:

使用shell执行程序

这是现在最好的执行程序,当你不想缓存docker层时使用它。它基本上不需要任何更改,除了添加gitlab-runner到docker组。

鉴于git fetch,它提供了缓存docker层的最佳可能性。

怎么设置这个?我在文档中的任何地方都找不到这个。

答案

由于您将docker映像构建为CI作业的一部分,因此您很可能已经使用了shell执行程序。只有3种方法可以配置你的gitlab运行器,以支持构建dock工作图像作为CI工作的一部分:https://docs.gitlab.com/ee/ci/docker/using_docker_build.html

本文档还介绍了如何配置shell执行程序以及所有3种配置方式之间的权衡。

基本上唯一不允许缓存docker层的运行器配置是使用docker-in-docker执行器。

使用shell和docker socket绑定总是在托管gitlab runner的VM上本地缓存层,因此不需要进一步配置来启用缓存。

以上是关于如何设置GitLab +运行器来缓存Docker层的主要内容,如果未能解决你的问题,请参考以下文章

如何备份和恢复 gitlab runner?

如何正确设置环境变量 Gitlab CI/CD 和 Docker

如何使用多个 docker 设置 Gitlab CI E2E 测试

如何使用 docker executor 在同一个 gitlab 运行器上禁用并发作业?

不同 VM 中的 Gitlab 运行器和存储库

如何使用彼此独立的不同运行器运行 Gitlab CI 作业?