Создание многоархивного манифеста - PullRequest
0 голосов
/ 07 января 2019

Я пытаюсь использовать Google Cloud Build для создания многоархатных образов и манифеста поддержки, чтобы я мог запускать свои контейнеры на процессорах amd64 и arm. Я могу успешно создать два изображения, но я не могу сгенерировать манифест многоархива, необходимый ... получения ошибок, которые проявляются для только что созданных изображений, не существует.

Вот сцена, которая терпит неудачу:

- name: 'gcr.io/cloud-builders/docker' id: 'manifest' env: - 'DOCKER_CLI_EXPERIMENTAL=enabled' args: - 'manifest' - 'create' - 'gcr.io/$PROJECT_ID/village:$COMMIT_SHA' - 'gcr.io/$PROJECT_ID/village:arm32v6' - 'gcr.io/$PROJECT_ID/village:amd64' waitFor: ['amd64', 'arm']

, которая выдает ошибку:

no such manifest: gcr.io/village/village:arm32v6 Already have image (with digest): gcr.io/cloud-builders/docker

Предыдущий шаг моей сборки приводит к: Step #1 - "arm": Successfully tagged gcr.io/village/village:arm32v6.

Нужно ли мне как-то выдвигать отдельные изображения перед созданием многоархивных манифестов? Можно ли запустить продолжить выполнение команд облачной сборки после отправки изображений?

1 Ответ

0 голосов
/ 07 января 2019

Оказывается, вам нужно push зависимостей, прежде чем вы сможете создать манифест. Добавление шага как ниже сделало трюк!

- name: 'gcr.io/cloud-builders/docker' id: 'push-arm' args: - 'push' - 'gcr.io/$PROJECT_ID/village:arm32v6' waitFor: ['arm']

В итоге я задокументировал финальные конфиги здесь на случай, если кто-нибудь еще столкнется с этой проблемой.

...