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 в одном каталоге, если вы развертываете в нестандартной среде выполнения, чтобы исправить ситуацию, выполните следующие действия:

  1. Переместите файл app.yaml и другие файлы ruby ​​в подкаталог (используйте исходный файл app.yaml, нет необходимости использовать пользовательскую среду выполнения)

  2. Под вашими шагами 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 для получения дополнительной информации.

Другие вопросы по тегам