2015-07-07 7 views
7

otrzymuję ten błąd na AppEngine kiedy biegnę gcloud preview app run app.yaml: The --custom_entrypoint flag must be set for custom runtimesJak naprawić "` Flaga -custom_entrypoint musi być ustawiona dla niestandardowych środowisk wykonawczych "?

My app.yaml wygląda następująco:

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

handlers: 
    - url: .* 
    script: dynamic 

Moja dockerfile tylko: FROM google/nodejs-runtime

I ponownie zainstalowany gcloud aby pobrać najnowszą wersję , czy coś zmieniło się w konfiguracji yaml dla zarządzanych maszyn wirtualnych? To uniemożliwia mi przetestowanie mojej aplikacji.

+0

Wystąpił wcześniejszy błąd w Google Cloud SDK w wersji 0.9.65, ale powinien on zostać naprawiony. Czy możesz sprawdzić, jaka masz wersję SDK, uruchamiając: gcloud version Pokrewne pytanie i obejście problemu: http://stackoverflow.com/questions/30945321/running-node-js-on-on-google-cloud-but-error-running- with-docker –

+0

FYI - Widzę też ten błąd w Google Cloud SDK 0.9.67. Sprawdzam obejście lub naprawę. –

+1

Aby zaktualizować, przywróciłem poprzednią wersję 0.9.66 i nie widzę już błędu. Uruchomiłem: gcloud config set component_manager/fixed_sdk_version 0.9.66 - Aby wrócić do najnowszego, uruchom: gcloud config unset component_manager/fixed_sdk_version –

Odpowiedz

6

Nie wydaje się być błąd lub konfiguracja problem z Google Cloud SDK w wersji 0.9.67 powodujący ten błąd. Jako tymczasowe rozwiązanie, można powrócić do poprzedniej wersji SDK, który pracuje z następującymi poleceniami:

gcloud config set component_manager/fixed_sdk_version 0.9.66 
gcloud components update 

aby powrócić do bieżącej wersji SDK, uruchom:

gcloud config unset component_manager/fixed_sdk_version 
gcloud components update 

Ten problem pojawił się kilka wersji temu i był adresowany tutaj: Running node.js on google cloud, but error running with docker

0

Komentarz linii 391 do 397 w

google-cloud-SDK/platformy/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) 
4

Możesz uruchomić gcloud help preview app run, aby wyświetlić stronę man opisującą polecenie run i jego parametry. --custom-entrypoint jest opisany jako:

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

Zauważ, że komunikat o błędzie mówi --custom_entrypoint, z podkreśleniem, ale parametr jest --customer_entrypoint z myślnikiem. Prawidłowa nazwa to --custom-entrypoint patrz: https://code.google.com/p/google-cloud-sdk/issues/detail?id=191

Dla nodejs powinieneś móc używać coś takiego:

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

zależności od sposobu uruchamiania aplikacji. Port wydaje się być również dostępny jako zmienna środowiskowa PORT, więc nie musisz używać {port}, jeśli twoja aplikacja nie obsługuje argumentów wiersza poleceń.

Jednak nie byłem w stanie użyć npm start lub innego npm run <script> z --custom-entrypoint jednak.

Powiązane problemy