Google Cloud Build — build.yaml и app.yaml в подкаталоге не создают правильный источник

У меня возникли проблемы с настройкой файлов yaml для механизма приложений Google. Конфигурация работает правильно, когда мой файл app.yaml находится в корне проекта, но если он находится в подкаталоге, он не создает правильный источник. Я подозреваю, что мне нужно установить параметр dir: в конфигурации сборки, но я пробовал несколько вариантов и не могу заставить его работать.

Рабочая файловая структура, развернутое приложение имеет размер ~3 МБ.

src
deployment
└── staging
    └── build.yaml
app.staging.yaml


# build.yaml
steps:
- name: node:12
  entrypoint: yarn
- name: node:12
  entrypoint: yarn
  args: ['build']
- name: "gcr.io/cloud-builders/gcloud"
  args: ["app", "deploy", "app.staging.yaml"]
timeout: "1800s"

Не рабочая файловая структура, развернутое приложение имеет размер ~1 КБ.

src
deployment
└── staging
    └── build.yaml
    └── app.yaml


# build.yaml
steps:
- name: node:12
  entrypoint: yarn
- name: node:12
  entrypoint: yarn
  args: ['build']
- name: "gcr.io/cloud-builders/gcloud"
  args: ["app", "deploy", "deployment/staging/app.yaml"]
timeout: "1800s"

В обоих сценариях я начинаю развертывание с: gcloud builds submit --config deployment/staging/build.yaml

Что должно быть установлено для моего dir: в шагах build.yaml, чтобы шаг сборки знал, что нужно собирать от root? Есть ли способ отладить это локально без необходимости каждый раз загружать исходный код?

Спасибо! А


person Alex Fox    schedule 29.05.2020    source источник
comment
Каков ваш след ошибки?   -  person guillaume blaquiere    schedule 29.05.2020
comment
@guillaumeblaquiere Да, я видел эту проблему SO, но не мог понять, каким должно быть правильное значение dir: . В обоих случаях приложение развертывается успешно, но во втором случае при доступе к URL-адресу я получаю ошибку 500, а развернутый код составляет всего ~ 600 байт, что предполагает, что оно развернуто в пустой папке или что-то в этом роде. Это заставляет меня поверить, что мне нужно указать источник для этапа сборки, но если я запускаю облачную сборку из подпапки, как мне выйти из дерева папок, например. ../../ ?   -  person Alex Fox    schedule 29.05.2020


Ответы (2)


у вас не может быть app.yaml и cloudbuild.yaml в одном и том же каталоге, если вы выполняете развертывание в непользовательской среде выполнения. См. этот комментарий

person oakinlaja    schedule 29.05.2020
comment
Интересно, у меня нет ошибок при развертывании. - person Alex Fox; 29.05.2020

Я полагаю, что по умолчанию облачная сборка ожидает, что файл app.yaml будет находиться в самом верхнем каталоге. Я не уверен, что это можно изменить в настройках облачной сборки.

person user12682321    schedule 15.03.2021