LoginSignup
2
0

More than 5 years have passed since last update.

Google App Engine Flexible Environment で初期設定コマンド実行

Posted at

Google App Engine Flexible Environment で初期設定コマンド実行

Google App Engine Flexible Environment の中身は Docker なので、DockerfileのCMDおよびdocker-compose.ymlで複数のbashコマンドを実行させる方法 が使える。

前提条件

  • 2017年10月時点の Google App Engine Flexible Environment で動作確認。

例: Django で python manage.py migrate の実行後 gunicorn を起動する。

例として、Running Django in the App Engine Flexible Environment のソース・ファイルを使用する。
変更箇所は下記になる。

appengine/flexible/django_cloudsql/app.yaml

runtime: python
env: flex
entrypoint: bash -c "python manage.py migrate && gunicorn -b :$PORT mysite.wsgi"

beta_settings:
    cloud_sql_instances: <your-cloudsql-connection-string>

runtime_config:
  python_version: 3

entrypoint で、 bash -c "コマンドA && コマンドB" のように指定する。

やりたかったこと

Heroku でいう heroku run python manage.py migrate を Google App Engine Flexible Environment で実現したかった。

gcloud app instances ssh でインスタンスにログイン -> Docker に入って python manage.py migrate を検討したが、うまくいかなかった(エラー原因の特定に時間がかかりそうだったので途中で諦め)。

懸案事項

上記の方法だと、App Engine のインスタンスが起動するたびに実行されるので、複数インスタンスがあると複数回 python manage.py migrate が発行される。
複数インスタンスから同時に python manage.py migrate を実行するとどうなるかは未検証。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0