Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы может все еще выполняться. Актуальные сведения см. в документации на английском языке.

Поддержка этой версии GitHub Enterprise была прекращена 2023-03-15. Исправления выпускаться не будут даже при критических проблемах безопасности. Для повышения производительности, укрепления безопасности и новых функций установите последнюю версию GitHub Enterprise. Чтобы получить справку по обновлению, обратитесь в службу поддержки GitHub Enterprise.

Работа с реестром Docker

Вы можете отправлять и извлекать образы Docker с помощью реестра Docker для GitHub Packages.

GitHub Packages доступен в GitHub Free, GitHub Pro, GitHub Free для организаций, GitHub Team, GitHub Enterprise Cloud, GitHub Enterprise Server 3.0 или более поздней версии и GitHub AE. Дополнительные сведения об обновлении экземпляра GitHub Enterprise Server см. в разделе Сведения об обновлении до новых выпусков и в Помощник по обновлению , чтобы найти путь обновления из текущей версии выпуска.

Примечание. Этот тип пакета может быть недоступен для вашего экземпляра, так как администраторы сайта могут включать или отключать каждый поддерживаемый тип пакета. Дополнительные сведения см. в разделе Настройка поддержки экосистемы пакетов для предприятия.

Сведения о поддержке Docker

При установке или публикации образа Docker реестр Docker в настоящее время не поддерживает внешние слои, такие как образы Windows.

Проверка подлинности в GitHub Packages

Для публикации, установки и удаления частных, внутренних и общедоступных пакетов требуется маркер доступа.

Вы можете использовать personal access token для проверки подлинности в GitHub Packages или GitHub Enterprise Server. При создании 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

Если в вашем экземпляре отключена изоляция поддоменов:

$ cat ~/TOKEN.txt | docker login HOSTNAME -u USERNAME --password-stdin

Чтобы использовать этот пример команды входа, замените USERNAME именем пользователя GitHub Enterprise Server , HOSTNAME URL-адресом экземпляр GitHub Enterprise Server, и ~/TOKEN.txt путем к файлу personal access token для GitHub Enterprise Server.

Дополнительные сведения см. в разделе Вход в Docker.

Публикация изображения

Примечание. Реестр Docker GitHub Packages в будущем выпуске GitHub Enterprise Server будет заменен на Container registry, который обеспечивает улучшенную поддержку контейнеров.

Примечание. Имена изображений должны содержать только строчные буквы.

GitHub Packages поддерживает несколько образов Docker верхнего уровня для каждого репозитория. Репозиторий может содержать любое количество тегов изображений. Вы можете столкнуться со снижением производительности при публикации или установке образов Docker размером более 10 ГБ (слои будут ограничены 5 ГБ каждый). Дополнительные сведения см. в разделе "Тег Docker" в документации по Docker.

После публикации пакет можно просмотреть здесь: GitHub. Дополнительные сведения см. в разделе Просмотр пакетов.

  1. Определите имя и идентификатор образа Docker с помощью docker images.

    $ docker images
    > < >
    > REPOSITORY        TAG        IMAGE ID       CREATED      SIZE
    > IMAGE_NAME        VERSION    IMAGE_ID       4 weeks ago  1.11MB
  2. Используя идентификатор образа Docker, пометьте образ Docker, заменив OWNER именем личная учетная запись или организации, которая владеет репозиторием, REPOSITORY — именем репозитория, содержащего проект, IMAGE_NAME именем пакета или образа, HOSTNAME — именем узла экземпляр GitHub Enterprise Server, и VERSION. с версией пакета во время сборки. Если в вашем экземпляре включена изоляция поддоменов:

    $ docker tag IMAGE_ID docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION

    Если в вашем экземпляре выключена изоляция поддоменов:

    $ docker tag IMAGE_ID HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION
  3. Если вы еще не создали образ Docker для пакета, выполните сборку образа, заменив OWNER именем личная учетная запись или организации, которая владеет репозиторием, REPOSITORY — именем репозитория, содержащего проект, IMAGE_NAME на имя пакета или образа, VERSION — версией пакета во время сборки, HOSTNAME с именем узла экземпляр GitHub Enterprise Server, и PATH к образу, если он не находится в текущем рабочем каталоге. Если в вашем экземпляре включена изоляция поддоменов:

    $ docker build -t docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION PATH

    Если в вашем экземпляре выключена изоляция поддоменов:

    $ docker build -t HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION PATH
  4. Опубликуйте изображение в GitHub Packages. Если в вашем экземпляре включена изоляция поддоменов:

    $ docker push docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION

    Если в вашем экземпляре выключена изоляция поддоменов:

    $ docker push 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 Enterprise Server будет заменен на Container registry, который обеспечивает улучшенную поддержку контейнеров.

Вы можете использовать docker pull команду для установки образа Docker из GitHub Packages, заменив OWNER именем личная учетная запись или организации, которой принадлежит репозиторий, REPOSITORY — именем репозитория, содержащего проект, IMAGE_NAME на имя пакета или образа, HOSTNAME с именем узла экземпляр GitHub Enterprise Server, и TAG_NAME с тегом для образа, который требуется установить.

Если в вашем экземпляре включена изоляция поддоменов:

$ docker pull docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:TAG_NAME

Если в вашем экземпляре выключена изоляция поддоменов:

$ docker pull HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:TAG_NAME

Примечание. Необходимо получить образ с помощью IMAGE_NAME:VERSION и не использовать IMAGE_NAME:SHA.

Дополнительные материалы