0

Cloud Build を使用して、Ruby on Rails アプリの App Engine へのデプロイを自動化しようとしています。

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 フィールドを [runtime: custom] に設定します。[ruby] ランタイムを引き続き使用するには、このディレクトリから cloudbuild.yaml を削除してください。

次にcustom、カスタムランタイムには Dockerfile が必要なため、ランタイムを変更して Dockerfile を追加しようとしました。

しかし、今ではエラーが発生しています。

エラー: (gcloud.app.deploy) カスタム ランタイムのソース ディレクトリには、[Dockerfile] と [cloudbuild.yaml] のいずれかが必要です。[/home/milindu/Projects/ElePath-Ruby] には両方が含まれています

次に、Dockerfile も削除しました。しかし、今、この奇妙な状況に陥っています。'Step #1:' が再帰にスタックしたようにいくつかに成長していることがわかります。

エラーコンソール

4

1 に答える 1

1

Cloudbuild.yaml は、カスタム ランタイムを使用しなくても App Engine フレキシブルで動作するはずです。受け取った最初のエラー メッセージで詳しく説明されているように、非カスタム ランタイムにデプロイしている場合、app.yaml と cloudbuild.yaml を同じディレクトリに配置することはできません。この状況を解決するには、次の手順に従います。

  1. app.yaml と他の ruby​​ ファイルをサブディレクトリに移動します (元の app.yaml を使用します。カスタム ランタイムを使用する必要はありません)。

  2. cloudbuild.yaml ステップの下で、app.yaml のパスを指定する 3 つ目の引数を追加して、アプリ デプロイの引数を変更します。

以下に例を示します。

==================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' 
于 2018-11-21T16:07:45.457 に答える