React app(create-react-appを使用して作成))の本番ビルドをgcloud app engineフレキシブル環境にデプロイしようとしています。
実行後npm run build
、ビルドフォルダが作成されました:
これは私の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
ビルドフォルダーの製品バージョンの代わりに開発アプリが提供されています。何が悪いのですか?
GAEアプリ/サービスをデプロイする場合、デプロイされるアプリ/サービスのapp.yaml
ファイルを含むディレクトリは、アプリ/サービスの最上位ディレクトリと見なされ、そのディレクトリのコンテンツがデプロイされるものです。あなたの場合、これはあなたが開発バージョンと呼んでいると私が思うものと一致します。
build
ディレクトリをアプリ/サービスの最上位ディレクトリにしたい場合は、次のことを行う必要があります。
build
dirにapp.yaml
ファイルを作成します(手動で、またはビルドプロセスに指示して)
注:アプリのディレクトリにbuild
ディレクトリがないため、そのファイルのパスを調整する必要があります。または、その中にbuild -> .
シンボリックリンクを作成し、パスを調整せずに既存のapp.yaml
コンテンツをそのまま使用できるようにします(ただし、これが機能するかどうかは100%確実ではありません)。
そのbuild/app.yaml
ファイルをデプロイします。最初の(bsn
)ディレクトリーからではありません。