Служба приложений Azure внезапно остановилась с ошибкой PhantomJS - PullRequest
0 голосов
/ 25 сентября 2019

У нас уже есть API Restify, работающий в службе приложений Azure в Linux.Внезапно это приложение (как тестовое, так и прод. Они запускаются как отдельные приложения) перестало работать.На основании журналов ошибка связана с пакетом, который мы используем node-highcharts-exporting , который зависит от PhantomJS.Служба приложений использует узел 8.1.

Мы попытались повторно развернуть код, обновив версию узла до 8.12 (не хотим использовать последнюю версию без тестирования), но все равно не повезло.

РазвертываниеЖурналы: (Эта часть успешна. Это только для справки)

enter image description here

Журналы контейнеров: (здесь происходит сбой запуска)

enter image description here

Попытался реплицировать ту же среду на месте, и все работает отлично.Создан новый сервис приложений, который также сталкивается с той же проблемой.Любая помощь очень ценится.

Обновление 1: Я думаю, я понял, что происходит.Это связано с библиотеками шрифтов в linux https://github.com/ariya/phantomjs/issues/10904

Мне нужно установить libfontconfig, но это не поддерживается службой приложений Azure.

1 Ответ

0 голосов
/ 28 сентября 2019

Да, это связано с ограничением песочницы в службе приложений.Чтобы подчеркнуть, стандартные / нативные веб-приложения Azure работают в безопасной среде, называемой песочницей.Каждое приложение запускается в своей собственной изолированной программной среде, изолируя его выполнение от других экземпляров на том же компьютере, а также обеспечивая дополнительную степень безопасности и конфиденциальности, которые в противном случае были бы недоступны.

Не поддерживаются сценарии в стандартной службе приложений - PhantomJS (/ Selenium): пытается подключиться к локальному адресу, а также использует проблему GDI + .Known для всех генераторов PDF на основе wkhtmltopdf или phantomjs: пользовательские шрифты не отображаются (вместо этого используется системный шрифт) из-за ограничений GDI API для песочницы. См. страницу службы приложений GitHub песочница .

В зависимости от ваших требований вы можете использовать пользовательский контейнер вСлужба приложений (вы можете использовать собственный образ Docker), позволяющая вносить изменения в ОС, необходимые для вашего приложения.

Ознакомьтесь с этим документом для получения дополнительной информации по этой теме:

Запустите пользовательский контейнер Linux в службе приложений Azure (можно использовать пользовательский образ Docker): https://docs.microsoft.com/azure/app-service/containers/quickstart-docker

Запустите пользовательский контейнер Windows в Azure (предварительный просмотр): https://docs.microsoft.com/azure/app-service/app-service-web-get-started-windows-container

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...