Невозможно извлечь изображения из реестра артефактов при развертывании в Cloud Run.
Введение
Я использую Cloud Build, чтобы научиться создавать образы Docker, хранить их в реестре артефактов, а затем развертывать конечный продукт в Cloud Run. Пожалуйста, ознакомьтесь сcloudbuild.yaml
ниже:
steps:
# Build the container image
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '.', '-t', '[REGION]-docker.pkg.dev[projectId]/[repository]/[image]:latest']
# Push to Artifact Registry
- name: 'gcr.io/cloud-builders/docker'
args: ['push', '[REGION]-docker.pkg.dev[projectId]/[repository]/[image]:latest']
# List Docker images (for debugging)
- name: 'gcr.io/cloud-builders/docker'
args: ['images']
# Log in to Artifact Registry
- name: 'gcr.io/cloud-builders/docker'
args: ['login', '[REGION]-docker.pkg.dev[projectId]/[repository]/[image]:latest']
# Deploy to Cloud Run
- name: 'gcloud'
args:
- 'run'
- 'deploy'
- 'REPLACE_WITH_SERVICE_NAME'
- '--image'
- '[REGION]-docker.pkg.dev[projectId]/[repository]/[image]:latest'
- '--region'
- 'REPLACE_WITH_REGION'
- '--platform'
- 'managed'
- '--allow-unauthenticated'
Все шаги помечаются как успешные в Cloud Build, но когда дело доходит до этапа развертывания в Cloud Run, отображается следующее сообщение об ошибке:
Error response from daemon: pull access denied for gcloud, repository does not exist or may require docker login:denied:requested access to the resource is denied
Я прочитал документацию и убедился, что выполняются следующие требования:
- Я следовал этой документации по реестру артефактов , чтобы настроить это.
- Репозиторий и образ существуют в реестре артефактов.
- Учетная запись службы Cloud Build имеет необходимые разрешения для управления ресурсами реестра артефактов:
роли/artifactregistry.reader
роли/artifactregistry.writer
Вопросы:
- Я пропустил какой-либо шаг в своем cloudbuild.yaml?
- Почему я могу отправлять изображения в реестр артефактов, но не могу получить их для развертывания?