Я использую GitLab Runner в своем кластере Kubernetes для запуска заданий CI.Я хочу, чтобы задания по сборке работали быстрее.
Чтобы сделать их быстрее, я повторно использую образ Docker из предыдущей сборки (помеченный как latest
).Время сборки уменьшилось, но теперь узким местом является команда pull
, которая занимает примерно 60-70% времени.
Вот фрагмент кода .gitlab-ci.yml
:
build:sheets:
stage: build
image: docker:stable
services:
- docker:dind
before_script:
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" "$CI_REGISTRY" --password-stdin
script:
- docker pull $SHEETS_LATEST || true
- docker build --cache-from $SHEETS_LATEST --tag $SHEETS_TAG --tag $SHEETS_LATEST .
- docker push $SHEETS_TAG
- docker push $SHEETS_LATEST
Я использую Gitlab Registry и, таким образом, команда pull
требует большой связи между моим кластером и реестром.
Итак, у меня есть пара вопросов:
Стоит ли пытаться развернуть мой собственный реестр докеров в кластере, чтобы сэкономить пару минут на сборку?
Есть ли способ сохранить образгде-нибудь на кластере не тянуть из реестра каждый раз?