2015-07-07 28 views
7

ben AppEngine'de bu hatayı alıyorum: The --custom_entrypoint flag must be set for custom runtimesDüzeltme "` - Özel çalışma zamanları için --özel_entrypoint bayrağı ayarlanmalıdır "? Ben <code>gcloud preview app run app.yaml</code> çalıştırdığınızda

Benim gibi app.yaml görünür:

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

handlers: 
    - url: .* 
    script: dynamic 

Benim dockerfile sadece: Ben son sürümü almak için gcloud yeniden FROM google/nodejs-runtime

Yönetilen sanal makineler için yaml yapılandırmasında bir değişiklik mi yaptı? Bu, uygulamamı test etmemi imkansız hale getiriyor.

google-bulut sdk/platformda

+0

Google Cloud SDK sürümü 0.9.65 ile daha eski bir hata oluştu, ancak düzeltilmiş olması gerekiyordu. Hangi SDK sürümünün çalıştığını doğrulayabilir misiniz: gcloud version İlgili soru ve geçici çözüm şu adreste bulunmaktadır: http://stackoverflow.com/questions/30945321/running-node-js-on-google-cloud-but-error-running- docker –

+0

FYI - Bu hatayı Google Cloud SDK 0.9.67 ile de görüyorum. Bir geçici çözüm olup olmadığını kontrol ediyorum ya da düzeltin. –

+1

Sadece güncellemek için, önceki sürüm 0.9.66'ya geri döndüm ve artık hatayı göremedim. Ben koştu: gcloud config set component_manager/fixed_sdk_version 0.9.66 - En son geri almak için, çalıştırın: gcloud config unset component_manager/fixed_sdk_version –

cevap

6

bu hataya neden olan Google Cloud SDK sürüm 0.9.67 ile ilgili sorun. Geçici bir çözüm olarak, aşağıdaki komutlarla, çalışıyor önceki SDK sürümü, geri dönebilirsiniz:

gcloud config set component_manager/fixed_sdk_version 0.9.66 
gcloud components update 

SDK geçerli sürümüne dönmek için çalıştırın:

gcloud config unset component_manager/fixed_sdk_version 
gcloud components update 

Bu sorun Birkaç sürüm önce yayınlandı ve burada ele alındı:Running node.js on google cloud, but error running with docker

0

Açıklama satırları 397 için 391/google_appengine/google/appengine/araçlar/devappserver2/module.py

bir hata ya da kurulum olduğu görülmektedir
#  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

Çalıştırma komutunu ve parametrelerini açıklayan bir erkek sayfayı göstermek için gcloud help preview app run'u çalıştırabilirsiniz. Hata mesajı --custom_entrypoint söylüyor bir çizgi ile,

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

Not, ancak parametre bir çizgi ile --customer_entrypoint olup: --custom-entrypoint olarak tarif edilir. https://code.google.com/p/google-cloud-sdk/issues/detail?id=191

bir nodejs için gibi bir şey kullanmak gerekir:

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

Başvurunuzu başlattıktan şekline bağlı olarak doğru ad --custom-entrypoint olduğu yer. Bağlantı noktası, ortam değişkeni PORT olarak da kullanılabilir gibi görünüyor; dolayısıyla uygulamanız komut satırı argümanlarını işlemezse {port}'u kullanmanız gerekmez.

--custom-entrypoint'dan npm start veya diğer npm run <script> kullanamadım.