Dockerfile конструктора контейнеров с командами gcloud

У меня есть шаг строитель контейнера

steps:
- id: dockerbuild
  name: gcr.io/cloud-builders/docker
  entrypoint: 'bash'
  args:
  - -c
  - |
    docker build . -t test 
images: ['gcr.io/project/test']

Dockerfile, используемый для создания этого тестового образа, содержит команды, специфичные для gsutil, такие как

FROM gcr.io/cloud-builders/gcloud
RUN gsutil ls

Когда я отправляю сборку Docker в службу построения контейнеров, используя

gcloud container builds submit --config cloudbuild.yml

Я вижу следующую ошибку

You are attempting to perform an operation that requires a project id, with none configured. Please re-run gsutil config and make sure to follow the instructions for finding and entering your default project id.
The command '/bin/sh -c gsutil ls' returned a non-zero code: 1
ERROR
ERROR: build step 0 "gcr.io/cloud-builders/docker" failed: exit status 1

Мой вопрос: как мы используем команды gcloud / gsutil внутри DockerFile, чтобы я мог запускаться на этапе сборки Docker?

2 ответа

Решение

Для вызова "команд gcloud". используя инструмент сборки, вам нужна учетная запись службы Container Builder, потому что она выполняет ваши сборки от вашего имени.

Здесь, в этом GitHub, есть пример для разработчиков облаков, использующих команду gcloud:

Примечание: вы должны указать $PROJECT_ID, это обязательно для вашего сборщика, чтобы работать.

Для этого ваш Dockerfile либо нужно начать с базового образа, на котором уже установлен облачный SDK (например, FROM gcr.io/cloud-builders/gcloud) или вам нужно будет установить его. Вот Dockerfile который устанавливает его: https://github.com/GoogleCloudPlatform/cloud-builders/blob/master/gcloud/Dockerfile.slim

Другие вопросы по тегам