Google 托管 VM 错误 - 自定义入口点

Google Managed VM error - custom entry point

我是 运行 自定义托管 VM PHP、HHVM、nginx、Centos。

我在本地遇到问题 运行 并继续获取

ValueError: The --custom_entrypoint flag must be set for custom runtimes

问题。如果我使用 'dev_appserver.py app.yaml' 或 'gcloud preview app run app.yaml' gcloud -v 产生以下结果,就会发生这种情况:

$: gcloud -v

Google Cloud SDK 0.9.82

我也试过修复 SDK 版本:

这导致:

Please check if the environment variables DOCKER_HOST, DOCKER_CERT_PATH and DOCKER_TLS_VERIFY are set correctly. If you are using boot2docker, you can set them up by executing the commands that are shown by: boot2docker shellinit

我没有使用 boot2docker 并且 Docker 是 运行 'docker -d -H tcp://localhost:2376' 并且

Docker 信息:

$ docker info

Containers: 3

Images: 137

Storage Driver: aufs

Root Dir: /var/lib/docker/aufs

Backing Filesystem: extfs

Dirs: 143

执行驱动:native-0.2

内核版本:3.19.0-31-generic

操作系统:Ubuntu15.04

CPU:4

总内存:11.43 GiB

环境变量:

$ echo $DOCKER_HOST && echo $DOCKER_CERT_PATH && $DOCKER_TLS_VERIFY

tcp://localhost:2376

/home/mgane/ca

1

或者

这会导致同样的问题。注释掉 python 脚本中的行只会造成更多混乱甚至更多错误。

当 运行 nginx / hhvm 时,我应该实际指定什么作为自定义端点?当 运行 docker 时图像工作正常。文档为自定义入口点编写如下:

--custom-entrypoint CUSTOM_ENTRYPOINT

Specify an entrypoint for custom runtime modules. This is required when such modules are present. Include "{port}" in the string (without quotes) to pass the port number in as an argument. For instance: --custom_entrypoint="gunicorn -b localhost:{port} mymodule:application"

我试过

$ gcloud preview app run app.yaml --custom-entrypoint="php -v"

然后运行图像,但我得到的只是 503 个错误。

有谁知道自定义 nginx 的入口点命令应该是什么? Google 这里有一个 hello-world docker:https://github.com/GoogleCloudPlatform/appengine-nginx-hello

谢谢!

这个问题现在似乎已经解决了。部分原因是我在 app.yaml 上的配置错误仍然与 PHP AppEngine

的配置太接近

Google云SDK当前版本为0.9.84

我的 app.yaml 现在看起来如下:

runtime: custom
vm: true
api_version: 1
threadsafe: yes

manual_scaling:
  instances: 1

vm_settings:
  machine_type: f1-micro

vm_health_check:
  enable_health_check: false

handlers:
- url: .*
  script: nothing.php

需要注意的是'nothing.php'不存在。我可以通过简单地 运行 在本地 docker 映像来测试本地部署。由于过去几周的更新,他们现在可以很好地部署到 Google Cloud。

我的 Dockerfile 中的最后一行是 运行 前台的主管:

# Executing supervisordnow
CMD ["supervisord", "-n"]

希望这对其他人有帮助!