2015-07-07 8 views
7

Ottengo questo errore su AppEngine quando corro gcloud preview app run app.yaml: The --custom_entrypoint flag must be set for custom runtimesCome risolvere "` Il flag --custom_entrypoint deve essere impostato per i runtime personalizzati ""?

mio app.yaml assomiglia:

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

handlers: 
    - url: .* 
    script: dynamic 

mio dockerfile è solo: FROM google/nodejs-runtime

ho reinstallato gcloud per ottenere la versione più recente , qualcosa è cambiato nella configurazione di yaml per le VM gestite? Questo mi rende impossibile testare la mia app.

+0

Si è verificato un errore precedente con Google Cloud SDK versione 0.9.65, ma avrebbe dovuto essere risolto. Puoi verificare quale versione di SDK hai in esecuzione: gcloud version La domanda e il workaround correlati sono disponibili all'indirizzo: http://stackoverflow.com/questions/30945321/running-node-js-on-google-cloud-but-error-running- con-docker –

+0

FYI - Sto anche vedendo questo errore con Google Cloud SDK 0.9.67. Sto controllando una soluzione o una soluzione. –

+1

Solo per aggiornare, sono tornato alla precedente versione 0.9.66 e non vedo più l'errore. Ho eseguito: gcloud config set component_manager/fixed_sdk_version 0.9.66 - Per tornare al più recente, eseguire: gcloud config unset component_manager/fixed_sdk_version –

risposta

6

Sembra che ci sia un bug o di installazione problema con Google Cloud SDK versione 0.9.67 che causa questo errore. Come soluzione temporanea, è possibile ripristinare la versione precedente SDK, che sta lavorando, con i seguenti comandi:

gcloud config set component_manager/fixed_sdk_version 0.9.66 
gcloud components update 

Per tornare alla versione corrente del SDK, eseguire:

gcloud config unset component_manager/fixed_sdk_version 
gcloud components update 

Questo problema è apparso poche versioni fa ed è stato indirizzato qui: Running node.js on google cloud, but error running with docker

0

righe di commento da 391 a 397 in

google-cloud-sdk/platform/google_appengine/google/appengine/strumenti/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) 
4

È possibile eseguire gcloud help preview app run per mostrare una pagina man che descrive il comando di marcia ei suoi parametri. --custom-entrypoint è descritto come:

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

Si noti che il messaggio di errore dice --custom_entrypoint, con un carattere di sottolineatura, ma il parametro è --customer_entrypoint, con un trattino. Il nome corretto è --custom-entrypoint vedere: https://code.google.com/p/google-cloud-sdk/issues/detail?id=191

Per un nodejs si dovrebbe essere in grado di usare qualcosa come:

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

A seconda di come si avvia l'applicazione. La porta sembra essere anche disponibile come variabile di ambiente PORT, quindi non è necessario utilizzare {port} se l'app non gestisce gli argomenti della riga di comando.

Non sono stato in grado di utilizzare npm start o altro npm run <script> dal --custom-entrypoint tuttavia.

Problemi correlati