В GitLab интегрирован сервис Container Registry. Он позволяет хранить Docker-образы для каждого проекта в GitLab.
Вместо GitLab Container Registry вы можете использовать Yandex Container Registry. Этот сервис позволяет хранить Docker-образы в облаке и распространять их между управляемыми сервисами Yandex Cloud, например, Yandex Managed Service for Kubernetes или Yandex Managed Service for GitLab.
Использование Yandex Container Registry для хранения образов из проектов GitLab обладает несколькими преимуществами:
-
GitLab Container Registry хранит образы и теги на диске инстанса GitLab. Когда место на диске заканчивается, возникает ошибка с HTTP-кодом 500, инстанс становится недоступным. Восстановить его можно только через обращение в техническую поддержку.
Yandex Container Registry хранит образы и теги в реестрах, для которых выделяются отдельные квоты. Поэтому накопление Docker-образов и тегов не влияет на место на диске инстанса.
-
Образы в Yandex Container Registry остаются доступными, даже если Managed Service for GitLab недоступен.
-
Yandex Container Registry поддерживает сканер уязвимостей Docker-образов. С его помощью можно обнаружить уязвимости и устранить их до развертывания приложения. Подробнее о сканировании см. в блоге Yandex Cloud.
Подготовка инфраструктуры для Managed Service for GitLab и Yandex Container Registry через Terraform описана в практическом руководстве, необходимый для настройки конфигурационный файл container-registry-and-gitlab.tf расположен в этом репозитории.