Как вызвать Docker и отправить изображения в GCR из Go в Google Cloud Builder

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

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

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

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


person Michael    schedule 07.05.2019    source источник


Ответы (1)


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

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

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

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

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

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

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

person DazWilkin    schedule 07.05.2019