Примечание. GitHub Packages сейчас находится в бета-версии для GitHub AE.
Сведения о поддержке Docker
При установке или публикации образа Docker реестр Docker в настоящее время не поддерживает внешние слои, такие как образы Windows.
Проверка подлинности в GitHub Packages
Для публикации, установки и удаления частных, внутренних и общедоступных пакетов требуется маркер доступа.
Вы можете использовать personal access token для проверки подлинности в GitHub Packages или GitHub AE. При создании personal access token вы можете назначить маркеру различные области в зависимости от ваших потребностей. Дополнительные сведения об областях, связанных с пакетами, для personal access token см. в разделе Сведения о разрешениях для пакетов GitHub.
Для проверки подлинности в реестре GitHub Packages в рабочем процессе GitHub Actions можно использовать следующее:
GITHUB_TOKEN
для публикации пакетов, связанных с репозиторием рабочих процессов.- personal access token с по крайней мере
read:packages
областью для установки пакетов, связанных с другими частными репозиториями (которыеGITHUB_TOKEN
не могут получить доступ).
Дополнительные сведения об GITHUB_TOKEN
использовании в рабочих процессах GitHub Actions см. в разделе Автоматическая проверка подлинности токенов.
Проверка подлинности с помощью personal access token
Для публикации и установки пакетов в GitHub Packages необходимо использовать personal access token с соответствующими областями. Дополнительные сведения см. в разделе Введение в GitHub Packages.
Вы можете пройти проверку подлинности GitHub Packages с помощью Docker, используя команду входа docker
.
Чтобы обеспечить безопасность учетных данных, рекомендуется сохранить personal access token в локальном файле на компьютере и использовать флаг Docker --password-stdin
, который считывает маркер из локального файла.
$ cat ~/TOKEN.txt | docker login docker.HOSTNAME -u USERNAME --password-stdin
Чтобы использовать этот пример команды входа, замените USERNAME
именем пользователя GitHub AE , HOSTNAME
URL-адресом ваше предприятие, и ~/TOKEN.txt
путем к файлу personal access token для GitHub AE.
Дополнительные сведения см. в разделе Вход в Docker.
Публикация изображения
Примечание. Реестр Docker GitHub Packages в будущем выпуске GitHub AE будет заменен на Container registry, который обеспечивает улучшенную поддержку контейнеров.
Примечание. Имена изображений должны содержать только строчные буквы.
GitHub Packages поддерживает несколько образов Docker верхнего уровня для каждого репозитория. Репозиторий может содержать любое количество тегов изображений. Вы можете столкнуться со снижением производительности при публикации или установке образов Docker размером более 10 ГБ (слои будут ограничены 5 ГБ каждый). Дополнительные сведения см. в разделе "Тег Docker" в документации по Docker.
После публикации пакет можно просмотреть здесь: GitHub. Дополнительные сведения см. в разделе Просмотр пакетов.
-
Определите имя и идентификатор образа Docker с помощью
docker images
.$ docker images > < > > REPOSITORY TAG IMAGE ID CREATED SIZE > IMAGE_NAME VERSION IMAGE_ID 4 weeks ago 1.11MB
-
Используя идентификатор образа Docker, пометьте его тегом, заменив OWNER именем личной учетной записи или организации, которая владеет репозиторием, РЕПОЗИТОРИЙ — именем репозитория, содержащего проект, IMAGE_NAME именем пакета или образа, HOSTNAME — именем узла ваше предприятие, и VERSION с версией пакета во время сборки.
$ docker tag IMAGE_ID docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION
-
Если вы еще не создали образ Docker для пакета, создайте образ, заменив OWNER именем личной учетной записи или организации, которая владеет репозиторием, REPOSITORY — именем репозитория, содержащего проект, IMAGE_NAME — именем пакета или образа, VERSION — версией пакета во время сборки, HOSTNAME с именем узла ваше предприятие, и ПУТЬ к образу, если он не находится в текущем рабочем каталоге.
$ docker build -t docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION PATH
-
Опубликуйте изображение в GitHub Packages.
$ docker push docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION
Примечание. Необходимо отправить образ с помощью
IMAGE_NAME:VERSION
и не использоватьIMAGE_NAME:SHA
.
Пример публикации образа Docker
Вы можете опубликовать образ monalisa
версии 1.0 в репозитории octocat/octo-app
с помощью идентификатора образа.
$ docker images
> REPOSITORY TAG IMAGE ID CREATED SIZE
> monalisa 1.0 c75bebcdd211 4 weeks ago 1.11MB
# Tag the image with OWNER/REPO/IMAGE_NAME
$ docker tag c75bebcdd211 docker.HOSTNAME/octocat/octo-app/monalisa:1.0
# Push the image to GitHub Packages
$ docker push docker.HOSTNAME/octocat/octo-app/monalisa:1.0
Вы можете опубликовать новый образ Docker в первый раз и присвоить ему имя monalisa
.
# Build the image with docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION
# Assumes Dockerfile resides in the current working directory (.)
$ docker build -t docker.HOSTNAME/octocat/octo-app/monalisa:1.0 .
# Push the image to GitHub Packages
$ docker push docker.HOSTNAME/octocat/octo-app/monalisa:1.0
Скачивание изображения
Примечание. Реестр Docker GitHub Packages в будущем выпуске GitHub AE будет заменен на Container registry, который обеспечивает улучшенную поддержку контейнеров.
С помощью docker pull
команды можно установить образ Docker из GitHub Packages, заменив OWNER именем личной учетной записи или организации, которая владеет репозиторием, REPOSITORY — именем репозитория, содержащего проект, IMAGE_NAME — именем пакета или образа, HOSTNAME — именем узла ваше предприятие, и TAG_NAME с тегом для образа, который требуется установить.
$ docker pull docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:TAG_NAME
Примечание. Необходимо получить образ с помощью IMAGE_NAME:VERSION
и не использовать IMAGE_NAME:SHA
.