неверное имя изображения в облачной сборке при использовании проекта организации - PullRequest
3 голосов
/ 22 сентября 2019

Я пытаюсь собрать контейнер с помощью GCP Cloud Build.Я использую простой шаблон из quickstart doc .Я сделал это раньше успешно.

Однако на этот раз я использую проект, который находится в «организации».Таким образом, идентификатор проекта mycompany.com:projectX, а не просто projectX.

Я не могу завершить сборку.

При запуске:

gcloud builds submit --tag gcr.io/mycompany.com:project-id/helloworld

Я получаю следующую ошибку:

(gcloud.builds.submit) INVALID_ARGUMENT: invalid build: invalid image name "gcr.io/mycompany.com:projectX/helloworld" 

Я подозреваю, что, поскольку флаг --tag вызывает docker build -t $TAG . под капотом и Имена образов Docker используют : для указания версий , этот формат может быть недействительным.

Есть идеи, что я должен делать при работе с проектами организации?Я не могу найти соответствующую информацию в документах Cloud Build или GCP IAM.

Некоторые вещи, которые я пробовал:

  • , используя cloudbuild.yaml файл конфигурации с заменой $PROJECT_ID , чтобы убедиться, что яиметь правильный формат
  • , используя номер проекта вместо идентификатора проекта (Using the project number in the image path is not supported. Project ID must be used instead)
  • , полностью пропуская название организации, что отклоняется при проверке Token exchange failed for project
  • мои разрешения - у меня есть роли Cloud Build Editor и Cloud Run Invoker, где первая указывает, что я могу "создавать и отменять сборки"

1 Ответ

0 голосов
/ 25 сентября 2019

вы можете сделать это, выполнив:

gcloud beta run deploy --image gcr.io/replica-20584682/helloworld --platform managed

теперь все проекты по умолчанию находятся в организации, а идентификатор проекта уникален в глобальном масштабе здесь это объяснено.

Поскольку это глобально уникально при развертывании, вам не нужно упоминать организацию.

РЕДАКТИРОВАТЬ добавил флаг --platform managed

...