Разверните приложение Ruby on Rails в App Engine с помощью Cloud Build - PullRequest
0 голосов
/ 21 ноября 2018

Я пытаюсь автоматизировать развертывание приложения Ruby on Rails в App Engine с помощью Cloud Build.

Мой app.yaml выглядел так,

runtime: ruby
env: flex
entrypoint: bundle exec rails server

Но я получаю эту ошибку,

Шаг # 1: ОШИБКА: (gcloud.app.deploy) В текущем каталоге есть cloudbuild.yaml, а поле времени выполнения в /workspace/app.yaml в настоящее время установлено в [runtime: ruby].Чтобы использовать ваш cloudbuild.yaml для создания пользовательской среды выполнения, установите для поля среды выполнения значение [runtime: custom].Чтобы продолжить использование среды выполнения [ruby], удалите cloudbuild.yaml из этого каталога.

Затем я попытался изменить среду выполнения на custom и добавить Dockerfile, поскольку для пользовательской среды выполнения требуется Dockerfile.

Но теперь я получаю сообщение об ошибке:

ОШИБКА: (gcloud.app.deploy) У пользовательской среды выполнения должен быть ровно один из [Dockerfile] и [cloudbuild.yaml] в исходном каталоге;[/ home / milindu / Projects / ElePath-Ruby] содержит оба

Затем я также удалил Dockerfile.Но теперь попадаю в эту странную ситуацию.Вы можете видеть, что «Шаг № 1:» превращается в несколько похожих на застрявших в рекурсии.

Error console

1 Ответ

0 голосов
/ 21 ноября 2018

Cloudbuild.yaml должен работать с App Engine Flexible без необходимости использования пользовательской среды выполнения.Как подробно описано в первом полученном вами сообщении об ошибке, у вас не может быть app.yaml и cloudbuild.yaml в одном каталоге, если вы развертываете в нестандартной среде выполнения, чтобы исправить ситуацию, выполните следующие действия:

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

  2. Под облачным билдом.yaml, измените аргумент для развертывания приложения, добавив третий аргумент, указав путь к app.yaml.

Ниже приведен пример:

==================FROM:

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' 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...