Как вы кешируете изображения, извлеченные из докера, в реестр частных докеров? - PullRequest
0 голосов
/ 18 декабря 2018

Первая строка моего .gitab-ci.yml выглядит следующим образом:

image: gradle:5.0-jdk11

Это изображение размером 601 МБ, и мне постоянно приходится извлекать его из док-станции при каждом вызове моей сборки.

Есть ли способ сохранить изображение в хранилище докеров проекта в Gitlab?Чтобы он автоматически помещался туда при первом запуске сборки, а затем извлекался из нее при последующих вызовах сборки?

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Если ваш Gitlab-runner уже вытащил Docker-образ, в следующий раз, когда он ему понадобится, он будет извлекать локальное изображение вместо того, чтобы снова загружать изображение размером 601 мБ.Это поведение по умолчанию, если вы не измените его, как в https://docs.gitlab.com/runner/executors/docker.html#how-pull-policies-work

Имейте в виду, что, если изображение будет удалено из локальных изображений вашего gitlab-runner, ему придется извлекать его с нуля.

0 голосов
/ 18 декабря 2018

Это должно быть описано на странице " Зависимости кэша в GitLab CI / CD ", где ваше изображение объявляется как артефакт в кэше (определяется как cache:paths)

Иногда это сбивает с толку, потому что артефакт имени звучит как нечто полезное вне работы, например, для загрузки окончательного изображения.
Но артефакты также доступны между этапами в конвейере.
Поэтому, если вы создаете свое приложение, загружая все необходимые модули, вы можете объявить их как артефакты, чтобы каждый последующий этап мог зависеть от их наличия

Проверьте такжечто включает в себя каталог кэша бегуна Docker .

Если проблема не устранена, попробуйте использовать личный реестр, как в выпуск 41924 :

image: my-private-registry:5000/my-ci-image:latest
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...