Google托管虚拟机错误 - 自定义入口点

时间:2015-10-21 09:32:51

标签: google-app-engine google-cloud-platform gcloud google-managed-vm

我正在使用PHP,HHVM,nginx,Centos运行自定义托管VM。

我在本地运行它并遇到问题

  

ValueError:必须为自定义运行时设置--custom_entrypoint标志

问题。如果我使用' dev_appserver.py app.yaml'或者&#g; gcloud预览应用运行app.yaml' gcloud -v产生以下内容:

  

$:gcloud -v

     

Google Cloud SDK 0.9.82

我还尝试按照以下方式修复SDK版本: Running node.js on google cloud, but error running with docker

这导致:

  

请检查环境变量DOCKER_HOST,DOCKER_CERT_PATH和DOCKER_TLS_VERIFY是否设置正确。如果您使用的是boot2docker,则可以通过执行以下所示的命令来设置它们:   boot2docker shellinit

我没有使用boot2docker,Docker正在运行' docker -d -H tcp:// localhost:2376'和

Docker Info:

  

$ docker info

     

容器:3

     

图片:137

     

存储驱动程序:aufs

     
    

Root Dir:/ var / lib / docker / aufs

         

备份文件系统:extfs

         

Dirs:143

  
     

执行驱动程序:native-0.2

     

内核版本:3.19.0-31-generic

     

操作系统:Ubuntu 15.04

     

CPUs:4

     

总记忆:11.43 GiB

环境变量:

  

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

     

TCP://本地主机:2376

     

/家庭/ mgane / CA

     

1

或者 How to fix "`The --custom_entrypoint flag must be set for custom runtimes`"?

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

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

  

- custom-entrypoint CUSTOM_ENTRYPOINT

     
    

指定自定义运行时模块的入口点。这是必需的         存在这样的模块。包括" {port}"在字符串中(没有         引号)将端口号作为参数传递。例如:         --custom_entrypoint =" gunicorn -b localhost:{port} mymodule:application"

  

我尝试过像

这样的事情
  

$ gcloud预览应用运行app.yaml --custom-entrypoint =" php -v"

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

有谁知道自定义nginx的入口点命令应该是什么? Google在这里有一个问候世界的码头工具:https://github.com/GoogleCloudPlatform/appengine-nginx-hello

谢谢!

1 个答案:

答案 0 :(得分:0)

这个问题现在似乎已经消失了。部分是由于我在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中的最后一行是在前台运行supervisor:

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

希望这有助于其他人!