Azure 应用服务共享托管中断容器启动

Azure App Service shared hosting breaking container startup

我有一个 Azure 应用服务 运行 我自己的 docker 基于 node:14-alpine 的图像。

部署到服务有效,网站按预期运行。

我希望能够在容器之间共享一些文件,我之前一直在使用映射为 docker 卷的 Azure FileStorage 帐户,但是由于某些原因 docker/pm2/node 这行得通不断执行写入意味着巨大的成本。

我想使用内置持久存储并将应用程序设置 WEBSITES_ENABLE_APP_SERVICE_STORAGE 设置为 true,理论上这应该在容器之间共享 /home 目录并启用存储以持久重启。

但是在更改此设置并重新启动后,容器不再成功启动并且没有给出原因。

我得到的日志如下:

docker run -d -p 2641:3001 --name [service_name]_2_d9625e76 -e PORT=3001 -e WEBSITES_ENABLE_APP_SERVICE_STORAGE=true -e WEBSITE_SITE_NAME=[service_name] -e WEBSITE_AUTH_ENABLED=False -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=[service_name].azurewebsites.net -e WEBSITE_INSTANCE_ID=962880a44b3c94xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx1e1a66c48ac6b9 -e HTTP_LOGGING_ENABLED=1 [service_name].azurecr.io/[service_name]:latest

2021-04-06T17:47:14.867Z INFO  - Initiating warmup request to container [service_name]_2_d9625e76 for site [service_name]
2021-04-06T17:47:30.612Z INFO  - Waiting for response to warmup request for container [service_name]_2_d9625e76. Elapsed time = 15.7444228 sec
... lots of lines
2021-04-06T17:56:52.574Z INFO  - Waiting for response to warmup request for container [service_name]_2_d9625e76. Elapsed time = 577.707016 sec
2021-04-06T17:57:14.909Z ERROR - Container [service_name]_2_d9625e76 for site [service_name] did not start within expected time limit. Elapsed time = 600.041979 sec
2021-04-06T17:57:14.916Z ERROR - Container [service_name]_2_d9625e76 didn't respond to HTTP pings on port: 3001, failing site start. See container logs for debugging.

我找不到更多要检查的日志或任何失败的原因。

WEBSITES_ENABLE_APP_SERVICE_STORAGE 我的容器有什么问题? 我可以 bash 访问 运行 kudu 实例,但我什至找不到节点网站模块。

是否有任何日志可以让我查看失败的内容或我在 WEBSITES_ENABLE_APP_SERVICE_STORAGE 设置中未考虑的内容?

首先,通过设置环境变量WEBSITES_ENABLE_APP_SERVICE_STORAGEtrue开启持久化存储不影响容器运行。它只表示您可以使用或不使用持久存储。

其次,如果你设置环境变量WEBSITES_ENABLE_APP_SERVICE_STORAGEtrue,那么你还需要配置挂载路径。到目前为止,据我所知,它只能在 docker-compose 文件中配置。 Here 就是例子。

如果您只想使用单个容器将其部署在 Azure 门户中。那么我建议你使用存储帐户。这样,你只需要在设置中配置映射即可。 Here 是步骤。