Ошибка управляемой виртуальной машины 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
Это приводит к тем же проблемам. Комментирование строк в скриптах 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"]
Надеюсь, это поможет кому-то еще!