私は数カ月間サーバーサイドノードアプリケーションをカスタムアプリケーションエンジンランタイムに問題なく展開しています。それに関する興味深いのは、私がコンテナを作ったときのソースに対する実行バーベルだけです。gcloud App Engine DockerとBabelによる柔軟な奇妙さ
この数週間で、これは間欠的に失敗し、リモートビルドログにこのエラーが発生しました。
import * as deps from './AppFactory';
SyntaxError: Unexpected token import
バベルの蒸散は起こっていないと私に導きます。 gcloud cliがそれを示していますが:
> node_modules/babel-cli/bin/babel.js src/ -d dist/
src/AppFactory.js -> dist/AppFactory.js
src/Ddl.js -> dist/Ddl.js
src/Helpers.js -> dist/Helpers.js
src/MemoryResolver.js -> dist/MemoryResolver.js
src/Mysql.js -> dist/Mysql.js
src/Schema.js -> dist/Schema.js
src/index.js -> dist/index.js
---> 0282c805d5c9
私はDockerfileのdist/indexファイルを検索します。私がするとき、私は実際に蒸散が起こっていないことがわかります。
ドッキング・イメージをローカルに作成すると、すべて正常に動作します。
私Dockerfileは次のとおりです。以下は
# Set the base image to Ubuntu
FROM gcr.io/google_appengine/nodejs:latest
ENV NODE_ENV production
# File Author/Maintainer
# Provides cached layer for node_modules
ADD package.json /tmp/package.json
RUN cd /tmp && npm install
RUN mkdir -p /src && cp -a /tmp/node_modules /src/
# Define working directory
WORKDIR /src
ADD . /src
RUN npm run deploy
RUN cat /src/dist/index.js
CMD ["npm", "start"]
は私の.babelrcファイルです:
{
"presets": [
"es2015",
]
}
そして、私のバニラYAMLファイル:
service: metrics-api-test
runtime: custom
env: flex
env_variables:
NODE_ENV: 'production'
NODEPORT: '8080'
beta_settings:
cloud_sql_instances: pwc-sales-demos:us-east1:pawc-sales-demos-sql
私はあらゆる種類のをしようとしてきましたbabel-register、babel-nodeとのバリエーション。ローカルのドッカー画像を作成すると、それらはすべて完全に機能します。私がアプリケーションエンジンにデプロイすると、それらはすべて失敗します。
私は数ヶ月前にこれを掲載しましたが、問題は再び私を悩ますようになり始めています。それは断続的な問題として始まり、毎回発生します。それはサービス間でも、異なるgcloudプロジェクトでさえも起こります。
これについての洞察は、私の感謝と150ポイントを得ます。
あなたはpackage.jsonファイルを投稿できます –
私の知っている限り、Googleサーバー上に構築された画像は、あなたが提供する同じDockerファイルを使用します。イメージビルディング中にバベルの蒸散が発生した場合、Dockerfileのいくつかのステップでここに投稿したベースイメージ[gcr.io/google_appengine/nodejs](https://github.com/GoogleCloudPlatform/nodejs) -docker/blob/master/base/Dockerfile)は、トランジレーションを実行しません。あなたの 'npm install'コマンドまたは' npm run deploy'コマンドの実行中にバベルの翻訳が行われますか?前に述べたように、あなたの** package.json **を見ることは役に立ちます。 – Nicholas
はい。パッケージファイルはその状態になりません。私は100%に近いと確信しています。私はすべてのbabelの依存関係をdevに比べて正常な依存関係に適切に移動させました。私はできる時にこれをもう一度見直そうとします。 –