关于开发服务器不使用自定义运行时的注释 - dev_appserver.py 不处理 Docker 或 Dockerfiles,这就是它抱怨需要您指定--custom_entrypoint的原因。但是,作为一种解决方法,您可以在本地手动设置依赖项。这是一个使用“ appengine-vm-fortunespeak ”的示例,它使用基于python-compat的自定义运行时:
$ git clone https://github.com/GoogleCloudPlatform/appengine-vm-fortunespeak-python.git
$ cd appengine-vm-fortunespeak-python
# Local dependencies from Dockerfile must be installed manually
$ sudo pip install -r requirements.txt
$ sudo apt-get update && install -y fortunes libespeak-dev
# We also need gunicorn since its used by python-compat to serve the app
$ sudo apt-get install gunicorn
# This is straight from dev_appserver.py --help
$ dev_appserver.py app.yaml --custom_entrypoint="gunicorn -b localhost:{port} main:app"
请注意,如果您使用任何非兼容图像,则可以直接使用 Docker 运行您的应用程序,因为它们不需要模拟旧版 App Engine API,例如使用使用 python 的“ getting -started-python ”运行:
$ git clone https://github.com/GoogleCloudPlatform/getting-started-python.git
$ cd 6-pubsub
# (Configure the app according to the tutorial ...)
$ docker build .
$ docker images # (note the IMAGE_ID)
$ docker run -p 127.0.0.1:8080:8080 -t IMAGE_ID
使用任何-compat图像尝试上述操作,您会遇到问题 - 例如,在python-compat上,您会在 runtime/google/appengine/tools/vmboot.py 中看到初始化错误。它需要在真实的托管 VM 实例上运行。