Node.js Azure应用程序服务突然停止,出现PhantomJS错误

Node.js Azure应用程序服务突然停止,出现PhantomJS错误,node.js,azure,azure-web-app-service,azure-app-service-envrmnt,azure-linux,Node.js,Azure,Azure Web App Service,Azure App Service Envrmnt,Azure Linux,我们有一个RESTifyAPI在Linux上的Azure应用程序服务中运行了一段时间。突然,这个应用程序(包括测试和产品,它们作为单独的应用程序运行)停止工作。根据日志,错误与我们使用的依赖于PhantomJS的包有关。应用程序服务正在使用节点8.1 我们尝试重新部署代码,将节点版本升级到8.12(不希望在没有测试的情况下使用最新版本),但仍然没有成功 部署日志:(此部分成功,仅供参考) 容器日志:(此处启动失败) 尝试在prem上复制相同的环境,一切正常。创建了一个新的应用程序服务,该服务

我们有一个RESTifyAPI在Linux上的Azure应用程序服务中运行了一段时间。突然,这个应用程序(包括测试和产品,它们作为单独的应用程序运行)停止工作。根据日志,错误与我们使用的依赖于PhantomJS的包有关。应用程序服务正在使用节点8.1

我们尝试重新部署代码,将节点版本升级到8.12(不希望在没有测试的情况下使用最新版本),但仍然没有成功

部署日志:(此部分成功,仅供参考)

容器日志:(此处启动失败)

尝试在prem上复制相同的环境,一切正常。创建了一个新的应用程序服务,该服务也遇到了相同的问题。非常感谢您的帮助

更新1: 我想我知道发生了什么。这与linux上的字体库有关


我需要安装
libfontconfig
,但Azure应用程序服务不支持此操作。

是的,这是由于应用程序服务上的沙箱限制。需要强调的是,标准/本机Azure Web应用程序在一个称为沙箱的安全环境中运行。每个应用程序都在自己的沙箱中运行,将其执行与同一台机器上的其他实例隔离开来,并提供了额外的安全性和隐私性,否则将无法使用

标准应用程序服务上不支持的方案-PhantomJS(/Selenium):尝试连接到本地地址,并使用GDI+。基于wkhtmltopdf或PhantomJS的所有PDF生成器的已知问题:由于沙盒GDI API限制,不会呈现自定义字体(而是使用系统安装的字体)。请参阅应用程序服务GitHub页面

但是,根据您的要求,您可以在应用程序服务中使用一个自定义容器(您可以使用自定义Docker映像),该容器允许您对应用程序所需的操作系统进行更改

有关此主题的更多详细信息,请查看这些文档:

在Azure应用程序服务中运行自定义Linux容器(您可以使用自定义Docker映像):

在Azure中运行自定义Windows容器(预览):

您可以将其总结为一个回复,以结束此问题。谢谢。。这就是最终要做的,但我不明白的是,为什么事情会突然发生。在过去的8个月左右,该应用程序运行良好。代码没有更改或没有新的部署。