8

我在运行时在 appengine 上收到此错误gcloud preview app run app.yamlThe --custom_entrypoint flag must be set for custom runtimes

我的app.yaml样子:

version: 0-1-1
runtime: custom
vm: true
api_version: 1
manual_scaling:
  instances: 1

handlers:
  - url: .*
    script: dynamic

我的 dockerfile 只是: FROM google/nodejs-runtime

我重新安装gcloud以获得最新版本,托管 VM 的 yaml 配置是否发生了变化?这使我无法测试我的应用程序。

4

3 回答 3

7

Google Cloud SDK 版本 0.9.67 似乎存在错误或设置问题,导致此错误。作为临时解决方法,您可以使用以下命令恢复到以前的 SDK 版本,该版本正在运行:

gcloud config set component_manager/fixed_sdk_version 0.9.66
gcloud components update

要返回 SDK 的当前版本,请运行:

gcloud config unset component_manager/fixed_sdk_version
gcloud components update

这个问题出现在几个版本之前,在这里得到了解决: Running node.js on google cloud, but error running with docker

于 2015-07-08T19:54:44.887 回答
4

您可以运行gcloud help preview app run以显示描述运行命令及其参数的手册页。--custom-entrypoint被描述为:

 --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"

请注意,错误消息显示--custom_entrypoint带有下划线的 ,但参数是--customer_entrypoint,带有破折号。正确名称--custom-entrypoint见:https ://code.google.com/p/google-cloud-sdk/issues/detail?id=191

对于 nodejs,您应该能够使用以下内容:

gcloud preview app run app.yaml --project=your-project-id --custom-entrypoint "node index.js {port}"

取决于您如何启动您的应用程序。该端口似乎也可作为环境变量 PORT 使用,因此{port}如果您的应用程序不处理命令行参数,则无需使用。

但是,我无法使用npm start或其他npm run <script>--custom-entrypoint

于 2015-08-05T07:50:24.157 回答
0

注释行 391 到 397

google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/module.py

#      if (self._module_configuration.effective_runtime == 'custom' and
#          os.environ.get('GAE_LOCAL_VM_RUNTIME') != '0'):
#        if not self._custom_config.custom_entrypoint:
#          raise ValueError('The --custom_entrypoint flag must be set for '
#                           'custom runtimes')
#        else:
#          runtime_config.custom_config.CopyFrom(self._custom_config)
于 2015-07-08T18:35:33.947 回答