Google App Engine マネージド VM にデプロイしようとしている最小限の Django プロジェクトがあります。何が起こっているのか、何が何を提供しているのかを正確に理解するのに少し苦労しています。次のような app.yaml ファイルがあります。
runtime: custom
vm: true
entrypoint: custom
api_version: 1
manual_scaling:
instances: 1
handlers:
- url: /static
static_dir: static
- url: /.*
script: DjangoVM.wsgi.application
そして、次のような dockerfile:
FROM gcr.io/google_appengine/python
RUN apt-get update
RUN apt-get -y install python-numpy python-scipy
ADD requirements.txt /app/requirements.txt
RUN pip install -r /app/requirements.txt
ADD . /app
CMD gunicorn DjangoVM.wsgi
私の requirements.txt は次のようになります。
Django==1.8.5
gunicorn==19.3.0
scikit-learn==0.16.1
サイトは正常にデプロイされますが、静的ファイルが表示されません。そのため、サンドボックス化されたアプリ エンジン プロジェクトでは、app.yaml のハンドラーが静的コンテンツの提供を担当します。静的コンテンツを提供するために、dockerfile で nginx サーバーまたは同様のサーバーを構成する必要がありますか?
これを理解するために、gunicorn がアプリケーションを提供していない場合、App Engine はデフォルトでハンドラーを使用してそれを提供しませんか? つまり、持っていなかったらどうなりCMD gunicorn DjangoVM.wsgiますか? カスタム ランタイムは、アプリ エンジンがデフォルトでアプリケーションにサービスを提供せず、特定の WSGI サーバーを指定する必要があることを意味しますか? マネージド VM のドキュメントはまだ完全ではありません。質問が少し混乱しているように見える場合は申し訳ありませんが、それはこの件に関する私の現在の混乱も反映しています. 助けてくれてありがとう!