我有一个最小的 Django 项目,我正在尝试将它部署到 Google App Engine Managed VMs 上。我在理解到底发生了什么以及什么在服务什么方面遇到了一些麻烦。我有一个 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 的文档还不是很详尽。抱歉,如果这些问题看起来有点令人困惑,但这也反映了我目前对该主题的困惑。谢谢你的帮助!