8

Я пытаюсь создать управляемый vm для моего приложения с узлом 4 с использованием пользовательской среды выполнения Google.Ошибка времени при попытке создать управляемый Google vm

Я создал следующий Dockerfile:

FROM node:4.2.1 

ENV PORT 8080 

ADD package.json package.json 
RUN npm install 
ADD . . 

CMD [ "npm", "start" ] 

Наряду с этим app.yaml:

# [START runtime] 
runtime: custom 
vm: true 
api_version: 1 
# [END runtime] 

health_check: 
    enable_health_check: false 

skip_files: 
- ^(.*/)?#.*#$ 
- ^(.*/)?.*~$ 
- ^(.*/)?.*\.py[co]$ 
- ^(.*/)?.*/RCS/.*$ 
- ^(.*/)?\..*$ 
- ^(.*/)?.*/node_modules/.*$ 
- ^(.*/)?.*\.log$ 

я развернуть приложение с помощью команды gcloud предварительного просмотра:

gcloud preview app deploy app.yaml --promote 

Похоже, докер строится правильно, но в конце процесса я получаю это сообщение:

Copying files to Google Cloud Storage... 
Synchronizing files to [gs://staging.my-project-id.appspot.com/]. 
Updating module [default]...\Deleted [https://www.googleapis.com/compute/v1/projects/my-project-id/zones/us-central1-f/instances/gae-builder-vm-20151030t142257]. 
Updating module [default]...failed. 
ERROR: (gcloud.preview.app.deploy) Error Response: [4] Timed out creating VMs. 
+0

Решена ли эта проблема? – Kamran

+0

Пока нет, хотя кажется, что код был развернут, но все равно ошибка таймаута возвращается – idoshamun

+0

Я тоже сталкиваюсь с этой проблемой ... – nicholasf

ответ

2

У меня сейчас работает развертывание. Я должен был устранить ту же проблему раньше, для другого проекта, но у меня не было кода под рукой, поэтому мне пришлось снова работать над проблемами.

Развертывание выполнено гладко до тех пор, пока не будут выполнены последние шаги, при которых обновление модуля будет тайм-аутом. Это заставило меня подумать, что это связано с тем, что приложение запускалось на виртуальной машине и не отвечало должным образом, поэтому окончательный крючок будет тайм-аут.

Здесь вы найдете много информации - https://cloud.google.com/appengine/docs/managed-vms/config. Я проверил следующие вещи:

  • протоколирование - убедитесь, что вы пишете правильный файл журнала. См https://cloud.google.com/appengine/docs/managed-vms/custom-runtimes#logging
  • обеспечить вас есть файл .dockerignore и пропуск файлов в app.yaml, так что вы не требуете процесса копирования через ненужное node_modules или лог-файлы
  • отключить проверку здоровье, если вы не используете его, или убедитесь, что у вас настроены правильные маршруты express.js.
  • проверьте, что ваши переменные окружения установлены и соответствуют тому, что может использоваться GAE. Это был мой последний шаг - GAE позволит вам привязываться к порту VM на 8080. Мне пришлось пройти через флаг NODE_ENV в моем приложении.yaml, который сказал приложению использовать 8080, а не 3000.
  • Поднимите ресурсы Экземпляр GAE в app.yaml. Я указал два логических процессора и сделал вывод 2.

Удачи.

+2

на самом деле, что для меня проблема - создать новый проект для проекта – idoshamun

+0

«Убедитесь, что у вас установлена ​​последняя версия node.js и npm ». –

+0

«выключите проверку работоспособности, если вы ее не используете, или убедитесь, что у вас настроены правильные маршруты express.js». Не могли бы вы расширить это или добавить ссылку? Мне это интересно. – natario