🦔

Google App Engine (Node.js)で、起動コマンドを指定する

2022/02/08に公開

Google App Engine (Node.jsランタイム)では、package.json に start スクリプトが存在する場合、それが起動コマンドとして実行されます。
(ちなみに、start がない場合は、node server.js というコマンドが実行されます。)

start 以外のコマンドを実行させたい場合には、Google App Engineの設定ファイルの一つであるapp.yaml の中の entrypoint という項目を使えば、任意のコマンドを実行させることができます。

例えば、package.json の start:prod スクリプトを実行したい場合は、以下のように書くことができます。

app.yaml
runtime: nodejs16
service: api
entrypoint: npm run start:prod
# (以下、省略)

Google App Engineは、暗黙の了解のようなハマりやすい仕様があるので、ドキュメントを一読しておくと安心です。

参考

https://cloud.google.com/appengine/docs/standard/nodejs/runtime

https://cloud.google.com/appengine/docs/standard/nodejs/config/appref#entrypoint

脚注
  1. https://stackoverflow.com/questions/68734842/google-app-engine-node-js-entrypoint-as-defined-in-the-app-yaml-isnt-triggeri ↩︎

Discussion