appengine cloudbuild.yaml требует пользовательской среды выполнения?
Ошибки компоновки с выводом ниже (с помощью приложения Rails)
ERROR: (gcloud.app.deploy) There is a cloudbuild.yaml in the current directory, and the runtime field in /workspace/app.yaml is currently set to [runtime: ruby]. To use your cloudbuild.yaml to build a custom runtime, set the runtime field to [runtime: custom]. To continue using the [ruby] runtime, please remove the cloudbuild.yaml from this directory.
1 ответ
Cloudbuild.yaml должен работать с App Engine Flexible без необходимости использовать пользовательскую среду выполнения. Как подробно описано в сообщении об ошибке, у вас не может быть app.yaml и cloudbuild.yaml в одном каталоге, если вы развертываете в нестандартной среде выполнения, чтобы исправить ситуацию, выполните следующие действия:
Переместите файл app.yaml и другие файлы ruby в подкаталог (используйте исходный файл app.yaml, нет необходимости использовать пользовательскую среду выполнения)
Под вашими шагами cloudbuild.yaml измените аргумент для развертывания приложения, добавив третий аргумент, указав путь app.yaml.
Ниже приведен пример:
================== ОТ:
steps:
- name: 'gcr.io/cloud-builders/gcloud'
args: ['app', 'deploy']
timeout: '1600s'
=================== TO:
steps:
- name: 'gcr.io/cloud-builders/gcloud'
args: ['app', 'deploy', '[SUBDIRECTORY/app.yaml]']
timeout: '1600s'
Один из способов справиться с этим - изменить имя cloudbuild.yaml
файл, чтобы сказать cloud_build.yaml
(вы также можете просто переместить файл), а затем перейти к своим триггерам в Cloud Build:
И измените это с Autodetected
к выбору вашего Cloud Build configuration file
вручную:
См. Эту проблему Github для получения дополнительной информации.