Как вызвать Docker и отправить изображения в GCR из Go в Google Cloud Builder - PullRequest
0 голосов
/ 07 мая 2019

Я надеюсь перейти на Google Cloud Builder для создания моего проекта. Проект содержит множество образов Docker, которые я хочу создать и отправить в Реестр контейнеров Google.

У меня есть команда Cobra CLI, которая отлично работает на Travis CI, который автоматизирует лининг (golint и go vet), форматирование (gofmt), тестирование (go test), а также другие вещи, такие как автоматизация прото компиляция. Команда также обнаруживает, создает и отправляет образ Docker для каждого из исполняемых файлов (package main) в хранилище (их много).

Я бы хотел перейти на Cloud Builder, но мне неясно, как мне поступить при вызове Docker из CLI Cobra. Предоставленный образ компоновщика go, gcr.io/cloud-builders/go, не имеет интерфейса командной строки Docker и образа компоновщика Docker, gcr.io/cloud-builders/docker, по-видимому, не имеет go среды выполнения.

Буду очень признателен за любые советы о том, как настроить yaml Cloud Builder, который позволил бы мне использовать аутентифицированный интерфейс Docker CLI и одновременно обеспечить поддержку go.

1 Ответ

0 голосов
/ 07 мая 2019

Интригующий вопрос.

«Сборка» Cloud Build (лучше всего) настраивается с использованием файла cloudbuild.yaml. Этот файл конфигурации является декларативным определением вашего процесса CI | CD и должен являться частью вашего исходного репозитория, может запускаться при регистрации и т. Д.

Cloud Build лучше всего рассматривать как конвейерный процессор; он применяет ряд функций (последовательно) к некоторым входам. Как правило, выходные данные (артефакты) являются изображениями контейнера (но они не должны быть). Каждый шаг конвейера проявляется в виде контейнера (изображение с некоторыми входными данными, параметрами и т. Д.)

По этой причине, хотя Cloud Build может заменить ваши задания Travis, вам нужно будет выполнить некоторую работу, преобразуя то, что выглядит как последовательность шагов командной строки, программно вызываемых с помощью Cobra (go, golint, gofmt) в серию эквивалентных контейнерных шагов, определенных в YAML.

Вот список поддерживаемых Google контейнеров. Поскольку единицей работы Cloud Build является (ny) контейнер (изображение), можно использовать практически все. Вот список изображений, предоставленных сообществом.

golint и gofmt не перечислены (хотя я предполагаю, что кто-то из них создал их). Это было бы тривиально для вас, чтобы разработать и затем включить в ваш конвейер. Если вы их создаете, отправьте их в репозиторий сообщества.

gRPC protoc включено ( ссылка )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...