Докер-файл конструктора контейнеров с командами 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

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

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, чтобы я мог работать на этапе сборки докера?


person Varunkumar Manohar    schedule 18.07.2018    source источник
comment
Возможный дубликат не может выполнить инициализацию gcloud внутри файла dockerfile   -  person Strelok    schedule 18.07.2018
comment
нет, я пытаюсь сослаться на другой вариант использования.   -  person Varunkumar Manohar    schedule 18.07.2018
comment
У меня есть шаг докера контейнера. Внутри файла докера я хотел бы запустить команды gcloud/gsutil   -  person Varunkumar Manohar    schedule 18.07.2018


Ответы (2)


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

Вот в этом GitHub есть пример для облака -builders с помощью команды gcloud:

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

person Alioua    schedule 20.07.2018

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

person David Bendory    schedule 18.07.2018
comment
Спасибо за ответ. Я пытался сделать то же самое, но ввод команды gcloud/gsutil внутри файла dockerfile шага контейнера выдает ошибку, что у меня недостаточно прав. - person Varunkumar Manohar; 18.07.2018