0

Java アプリを Google Appengine Managed VM にデプロイしようとしています。私はコンソールを使用してgcloudおり、すでにWARファイルを準備しています。プラス app.yaml.

次のコマンドを使用します。

gcloud preview app deploy ./build/libs/app.yaml

現在、次のように失敗します。

Building and pushing image for module [default]
-------------------------------------------------------------------------------- DOCKER BUILD OUTPUT --------------------------------------------------------------------------------
Step 0 : FROM gcr.io/google_appengine/jetty9
---> 005014071b64
Step 1 : ADD webapp-webapp.war $JETTY_BASE/webapps/root.war
---> 3e9023930cc8
Removing intermediate container 342e8a2f5750
Successfully built 3e9023930cc8
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Beginning teardown of remote build environment (this may take a few seconds).
Updating module [default]...failed.
ERROR: (gcloud.preview.app.deploy) Error Response: [400] "env" setting is not supported for this deployment.

プロジェクトがWARとして構成されていない場合に発生する同様のエラー( there )が表示されます。maven-gcloud-pluginただし、次の点に注意してください。

  • 私はgcloud最新バージョンのプレーンコマンドラインツールを使用しています
  • 私のプロジェクトはすでにWARにパッケージ化されています

また、私は以下を使用していますapp.yaml(これはmavenプラグインソースから入手しました):

runtime: java
env: 2
api_version: 1
handlers:
  - url: .*
    script: dynamic

では、このエラーがどこから来ているのかという質問です (docker イメージは、現時点で既に準備されていますよね?)。その意味?そして、これを修正する方法は?

更新FROM gcr.io/google_appengine/jetty9VM に使用されていることに気付きました。しかし、Appengine の場合はFROM gcr.io/google_appengine/jetty9-compat. WAR の代わりに展開されたアプリに切り替えようとしましたが、正しい Docker ベース イメージを使用し始めました。しかし、まだ失敗します:

Building and pushing image for module [default]
-------------------------------------------------------------------------------- DOCKER BUILD OUTPUT --------------------------------------------------------------------------------
Step 0 : FROM gcr.io/google_appengine/jetty9-compat
---> 2ad8572ef3d8
Step 1 : ADD . /app/
---> b10f4bc6718e
Removing intermediate container 8b149f4baf9c
Successfully built b10f4bc6718e
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Beginning teardown of remote build environment (this may take a few seconds).
Updating module [default]...failed.
ERROR: (gcloud.preview.app.deploy) Error Response: [400] "env" setting is not supported for this deployment.
4

1 に答える 1

0

その理由は次の行でしたapp.yaml:

env: 2

このオプションを使用せずに展開しようとするのは、単純すぎて明白すぎました。また、公式および非公式のすべてのドキュメントでは、アプリを Appengine アプリとしてデプロイするにはオプションを設定する必要があると述べています。env: 2それは本当に奇妙です。

この行を削除すると、ベース Docker イメージも に変更されgcr.io/google_appengine/java-compatます。jetty9-compatを含む jetty イメージが Appengine アプリと互換性がないことを意味していると思います

于 2016-01-13T14:27:37.960 に答える