При публикации пакета, ограниченного личной учетной записью или организацией, пакет по умолчанию не связан с репозиторием. При подключении пакета к репозиторию на целевой странице пакета будут отображаться сведения и ссылки из репозитория, например файл сведений. Вы также можете выбрать, чтобы пакет наследовал свои разрешения доступа от связанного репозитория. Дополнительные сведения см. в разделе Настройка управления доступом и видимости пакета.
Подключение репозитория к пакету уровня пользователя на GitHub
-
В GitHub перейдите на главную страницу личной учетной записи.
-
В правом верхнем углу GitHub.com щелкните фотографию профиля, а затем щелкните Ваш профиль.
-
На странице профиля в заголовке щелкните вкладку Пакеты .
-
Найдите и щелкните имя пакета, которым требуется управлять.
-
В разделе версий пакета щелкните Подключить репозиторий.
-
Выберите репозиторий для связывания с пакетом, а затем нажмите кнопку Подключить репозиторий.
Подключение репозитория к пакету уровня организации в GitHub
- В GitHub перейдите на главную страницу вашей организации.
- Под названием организации щелкните вкладку Пакеты .
- Найдите и щелкните имя пакета, которым требуется управлять.
- В разделе версий пакета щелкните Подключить репозиторий.
- Выберите репозиторий для связывания с пакетом, а затем нажмите кнопку Подключить репозиторий.
Подключение репозитория к образу контейнера с помощью командной строки
Примечание: При публикации пакета, связанного с репозиторием, пакет автоматически наследует разрешения на доступ связанного репозитория, а рабочие процессы GitHub Actions в связанном репозитории автоматически получают доступ к пакету, если только ваша организация не отключила автоматическое наследование разрешений доступа. Дополнительные сведения см. в разделе Настройка управления доступом и видимости пакета.
-
В Dockerfile добавьте эту строку, заменив
OWNER
иREPO
на свои сведения:LABEL org.opencontainers.image.source=https://github.com/OWNER/REPO
Например, если вы являетесь пользователем
octocat
и владеетеmy-repo
необходимо добавить следующую строку в Dockerfile:LABEL org.opencontainers.image.source=https://github.com/octocat/my-repo
Дополнительные сведения см. в разделе LABEL в официальной документации по Docker и в разделе Предварительно определенные ключи заметок в репозитории
opencontainers/image-spec
. -
Соберите образ контейнера. В этом примере создается образ из файла Dockerfile в текущем каталоге и присваивается имя образа
hello_docker
.$ docker build -t hello_docker .
-
При необходимости просмотрите сведения о созданном образе Docker.
$ docker images > REPOSITORY TAG IMAGE ID CREATED SIZE > hello_docker latest 142e665b1faa 5 seconds ago 125MB > redis latest afb5e116cac0 3 months ago 111MB > alpine latest a6215f271958 5 months ago 5.29MB
-
Назначьте имя и назначение размещения образу Docker.
$ docker tag IMAGE_NAME ghcr.io/NAMESPACE/NEW_IMAGE_NAME:TAG
Замените
NAMESPACE
именем личной учетной записи или организации, к которой требуется указать область действия пакета.Пример:
$ docker tag 38f737a91f39 ghcr.io/octocat/hello_docker:latest
-
Если вы еще не сделали этого, выполните проверку подлинности, чтобы войти в Container registry. Дополнительные сведения см. в разделе Работа с реестром контейнеров.
$ echo $CR_PAT | docker login ghcr.io -u USERNAME --password-stdin > Login Succeeded
-
Отправка образа контейнера в Container registry
$ docker push ghcr.io/NAMESPACE/IMAGE-NAME:TAG
Пример:
$ docker push ghcr.io/octocat/hello_docker:latest