Войдите в реестр пакетов github в частном репозитории из службы действий github

#docker #github-actions #github-package-registry

Вопрос:

мы пытаемся использовать частный образ docker, размещенный в пакете Github нашей организации. Что-то вроде этого:

 on: push

jobs:
  runner-job:
    runs-on: ubuntu-latest
    services:
      postgres:
        # Github Registry image here
        image: ghcr.io/orgname/reponame:tag
 

Но мы получаем несанкционированную ошибку, что нормально, потому что реестр является закрытым. Есть ли какой-нибудь способ войти в систему? Я не нашел никакого способа или документов.

Ответ №1:

Вам необходимо добавить учетные данные для каждой службы, в которой вы используете изображение из частного хранилища. Из документов:

Если реестр контейнеров изображения требует проверки подлинности для извлечения изображения, вы можете использовать credentials для установки map username значения «и password «. Учетные данные-это те же значения, которые вы указали бы команде входа в систему docker.

И вот вам пример:

 on: push

jobs:
  runner-job:
    runs-on: ubuntu-latest
    services:
      postgres:
        image: ghcr.io/orgname/reponame:tag
        # add this to each service with an image from a private repo
        credentials:
          username: ${{ secrets.DOCKER_USER }}
          password: ${{ secrets.DOCKER_PASSWORD }}
 

Этот пример подразумевает, что у вас есть два секрета: DOCKER_USER и DOCKER_PASSWORD .