web-dev-qa-db-ja.com

ビルドされたApp Engineのapp.yamlハンドラReact app

React app(create-react-appを使用して作成))の本番ビルドをgcloud app engineフレキシブル環境にデプロイしようとしています。

実行後npm run build、ビルドフォルダが作成されました:

App directory tree

これは私のapp.yamlです。

# [START runtime]
runtime: nodejs
env: flex
# [END runtime]

# [START handlers]
handlers:
  - url: /
    static_files: build/index.html
    upload: build/index.html
  - url: /
    static_dir: build
  # [END handlers]

App Engineにデプロイすると、バージョン構成は次のようになります。

runtime: nodejs
api_version: '1.0'
env: flexible
threadsafe: true
handlers:
  - url: /
    application_readable: false
    static_files: build/index.html
    require_matching_file: false
    upload: build/index.html
  - url: '/(.*)'
    application_readable: false
    static_files: "build/\\1"
    require_matching_file: false
    upload: 'build/.*'
automatic_scaling:
  min_num_instances: 2
  max_num_instances: 20
  cpu_utilization:
    target_utilization: 0.5

ビルドフォルダーの製品バージョンの代わりに開発アプリが提供されています。何が悪いのですか?

6
Tomáš Soukup

GAEアプリ/サービスをデプロイする場合、デプロイされるアプリ/サービスのapp.yamlファイルを含むディレクトリは、アプリ/サービスの最上位ディレクトリと見なされ、そのディレクトリのコンテンツがデプロイされるものです。あなたの場合、これはあなたが開発バージョンと呼んでいると私が思うものと一致します。

buildディレクトリをアプリ/サービスの最上位ディレクトリにしたい場合は、次のことを行う必要があります。

  • build dirにapp.yamlファイルを作成します(手動で、またはビルドプロセスに指示して)

    :アプリのディレクトリにbuildディレクトリがないため、そのファイルのパスを調整する必要があります。または、その中にbuild -> .シンボリックリンクを作成し、パスを調整せずに既存のapp.yamlコンテンツをそのまま使用できるようにします(ただし、これが機能するかどうかは100%確実ではありません)。

  • そのbuild/app.yamlファイルをデプロイします。最初の(bsn)ディレクトリーからではありません。

0
Dan Cornilescu