Ошибка управляемой виртуальной машины Google - пользовательская точка входа

Я использую настраиваемую виртуальную машину с PHP, HHVM, nginx, Centos.

У меня проблемы с его локальным запуском

ValueError: флаг --custom_entrypoint должен быть установлен для пользовательских сред выполнения

вопрос. Это происходит, если я использую "dev_appserver.py app.yaml" или "gcloud preview app run app.yaml" gcloud -v производит следующее:

$: gcloud -v

Google Cloud SDK 0.9.82

Я также попытался исправить версию SDK в соответствии с: Запуск node.js в облаке Google, но ошибка при запуске с докером

Это приводит к:

Проверьте, правильно ли установлены переменные окружения DOCKER_HOST, DOCKER_CERT_PATH и DOCKER_TLS_VERIFY. Если вы используете boot2docker, вы можете настроить их, выполнив команды, которые отображаются: boot2docker shellinit

Я не использую boot2docker, а Docker работает с 'docker -d -H tcp://localhost:2376' и

Информация о докере:

$ docker info

Контейнеры: 3

Изображения: 137

Драйвер хранилища: aufs

Root Dir: / var / lib / docker / aufs

Резервная файловая система: extfs

Dirs: 143

Драйвер исполнения: native-0.2

Версия ядра: 3.19.0-31-generic

Операционная система: Ubuntu 15.04

Процессоры: 4

Общая память: 11,43 ГиБ

Переменные среды:

$ echo $ DOCKER_HOST && echo $ DOCKER_CERT_PATH && $ DOCKER_TLS_VERIFY

TCP: // локальный: 2376

/ Главная /mgane/ ча

1

Или Как исправить "` Флаг --custom_entrypoint должен быть установлен для пользовательских сред выполнения`"?

Это приводит к тем же проблемам. Комментирование строк в скриптах Python просто создает больше беспорядка и еще больше ошибок.

Что я должен указать в качестве пользовательской конечной точки при запуске nginx / hhvm? Образ работает нормально при работе с докером. Документы пишут следующим образом для пользовательской точки входа:

--custom-entrypoint CUSTOM_ENTRYPOINT

Укажите точку входа для пользовательских модулей времени выполнения. Это требуется, когда такие модули присутствуют. Включите "{порт}" в строку (без кавычек), чтобы передать номер порта в качестве аргумента. Например: --custom_entrypoint="gunicorn -b localhost:{port} mymodule:application"

Я пробовал что-то вроде

Предварительный просмотр $ gcloud запускает app.yaml --custom-entrypoint="php -v"

который затем запускает образ, но все, что я получаю, это 503 ошибки.

Кто-нибудь знает, какой должна быть команда точки входа для пользовательского nginx? У Google есть докер hello-world здесь: https://github.com/GoogleCloudPlatform/appengine-nginx-hello

Спасибо!

1 ответ

Решение

Эта проблема, кажется, ушла сейчас. Частично из-за неправильной конфигурации моего app.yaml, все еще слишком близкого к тому, что у меня было для PHP AppEngine

Google Cloud SDK в настоящее время версии 0.9.84

Мой app.yaml теперь выглядит следующим образом:

runtime: custom
vm: true
api_version: 1
threadsafe: yes

manual_scaling:
  instances: 1

vm_settings:
  machine_type: f1-micro

vm_health_check:
  enable_health_check: false

handlers:
- url: .*
  script: nothing.php

Следует отметить, что "nothing.php" не существует. Я могу проверить локальное развертывание, просто запустив образ докера локально. Теперь они достаточно хорошо внедряются в Google Cloud благодаря обновлениям за последние несколько недель.

Последняя строка в моем Dockerfile - запустить супервизор на переднем плане:

# Executing supervisordnow
CMD ["supervisord", "-n"]

Надеюсь, это поможет кому-то еще!

Другие вопросы по тегам