Поиск по сайту:

Как начать работу с новым реестром контейнеров Docker на Github


GitHub недавно выпустил GitHub Docker Container Registry, конкурент Docker Hub по умолчанию, который позволяет вам хранить образы Docker в облаке в частном порядке. Он функционирует как расширение пакетов GitHub и интегрируется с их существующими инструментами CI/CD.

Что такое реестр контейнеров GitHub?

В реестрах контейнеров Docker хранятся встроенные версии контейнеров Docker. По умолчанию используется Docker Hub, в котором размещается большинство контейнеров Docker с открытым исходным кодом. Однако вы можете совершенно свободно использовать другой репозиторий, и многие компании предпочтут использовать частный реестр.

GitHub находится в особенно выгодном положении, чтобы предложить реестр контейнеров, будучи домом для бесплатного программного обеспечения с открытым исходным кодом, и на самом деле удивительно, что им потребовалось так много времени, чтобы вывести его на рынок. Но он уже здесь и довольно хорошо интегрируется с их существующими сервисами, что делает его одним из лучших конкурентов Docker Hub, доступных сегодня.

Реестр контейнеров работает как расширение пакетов GitHub, репозиторий пакетов для менеджеров пакетов, таких как NPM и NuGet. Все, что они добавляют, — это возможность использовать его для образов Docker, а также поддержку инструментов Docker CLI, таких как push и pull.

Исходный код изображений, включая Dockerfile, хранится в стандартном репозитории GitHub. Затем, когда вы хотите отправить изображение, вы можете создать его и отправить в связанные пакеты для этого репозитория.

Исходный код и образ Docker находятся на GitHub, что открывает уникальную возможность для интеграции. Действия GitHub могут запускаться из-за изменений исходного кода, которые могут автоматически запускать сборки вашего образа, когда изменения фиксируются на GitHub.

Во время бета-тестирования Container Registry реестр контейнеров можно будет использовать бесплатно. Репозитории с открытым исходным кодом и общедоступные репозитории всегда можно использовать совершенно бесплатно, но частные репозитории будут подпадать под стандартные тарифы для пакетов GitHub после завершения бета-тестирования. Бесплатный уровень включает 500 МБ хранилища и 1 ГБ передачи каждый месяц, чего должно хватить для большинства проектов. Если нет, вы можете инвестировать в GitHub Teams или GitHub Enterprise.

Как Вы этим пользуетесь?

URL-адрес для нового реестра — ghcr.io, его легко запомнить и он короткий для ввода, что является обязательным, когда вам нужно вводить его для каждой команды Docker.

Чтобы начать работу, вам сначала необходимо создать токен личного доступа в меню «Настройки» > «Настройки разработчика» > «Токены личного доступа».

Затем вы можете войти в реестр, используя этот токен. Технически GitHub рекомендует поместить это в файл и передать его в STDIN через cat, но вставка — это нормально.

docker login ghcr.io -u username

Затем запустите стандартную сборку Docker, пометьте ее URL-адресом и именем репозитория и отправьте образ.

docker build . -t ghcr.io/username/repository/image:version
docker push ghcr.io/username/repository/image:version

Обратите внимание, что вам понадобится реальный репозиторий Git, чтобы связать этот пакет.

После того, как он будет отправлен, вы должны увидеть новый пакет в своем профиле или в списке «Пакеты» в репозитории.

Одна из лучших вещей, которые вы можете сделать отсюда, — настроить автоматический конвейер CI/CD, который будет создавать образ Docker всякий раз, когда в Git обнаруживаются изменения. GitHub имеет предварительно созданное действие под названием «Publish Docker Container», которое будет публиковать в реестре пакетов для репозитория.

Если вы хотите начать, вы можете прочитать наше руководство по настройке, чтобы узнать больше.