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