Azure 应用服务共享托管失败容器启动

时间:2021-06-18 05:48:43

标签: docker azure-web-app-service azure-appservice

我有一个 Azure 应用服务运行我自己的基于 PHP 的 docker 镜像 (mcr.microsoft.com/appsvc/php:7.4-apache_20201229.1)

部署到服务工作正常,网站按预期运行 (WEBSITES_ENABLE_APP_SERVICE_STORAGE : false)

我希望能够使用持久存储来保存失败/网络应用程序重新启动的数据......

我想使用内置的持久化存储并设置应用程序设置 WEBSITES_ENABLE_APP_SERVICE_STORAGE to true,像这样使用 docker compose :

version: '3.3'

services:
   back:
     image: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
     volumes:
      - ${WEBAPP_STORAGE_HOME}/site/wwwroot:/var/www/html
     ports:
       - "8000:80"
     restart: always

但是,在更改此设置并停止/启动 Web 应用程序后,容器不再成功启动并且没有说明原因。

我得到的日志如下:

2021-06-17T23:49:43.847Z INFO  - Starting container for site
2021-06-17T23:49:43.847Z INFO  - docker run -d -p 8081:80 --name XXXXXXXXXXXXXXX -e WEBSITE_CORS_ALLOWED_ORIGINS=XXXXXXXXX -e WEBSITE_CORS_SUPPORT_CREDENTIALS=True -e WEBSITES_ENABLE_APP_SERVICE_STORAGE=true -e WEBSITE_SITE_NAME=XXXXXXXXXXXXXXXXX -e WEBSITE_AUTH_ENABLED=False -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=XXXXXXXXXXXXXXX -e WEBSITE_INSTANCE_ID=bd0010bcc7f2a648cafc4bcac18f1660692939e3ec29400aeb60d8a3d788c1c3 -e HTTP_LOGGING_ENABLED=1 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  
2021-06-17T23:53:34.572Z ERROR - multi-container unit was not started successfully

WEBSITES_ENABLE_APP_SERVICE_STORAGE 破坏了我的容器的什么?我有对正在运行的 kudu 实例的 bash 访问权限(ssh 也中断),但我没有看到我的应用程序中的任何文件

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

谢谢

编辑:

当只放 WEBSITES_ENABLE_APP_SERVICE_STORAGE = true ,并在启动命令中加入 -v ${WEBAPP_STORAGE_HOME}/site/wwwroot/storage:/storage 时,wwwroot 的内容将被删除,我的 docker 镜像将被替换为

2021-06-18T08:07:54.534Z INFO  - docker run -d -p 2301:80 --name XXXXXXXXXXXXXX_0_f194ab38 -e WEBSITE_CORS_ALLOWED_ORIGINS=https://XXXXXXXXXXX.azurewebsites.net -e WEBSITE_CORS_SUPPORT_CREDENTIALS=True -e WEBSITES_ENABLE_APP_SERVICE_STORAGE=true -e WEBSITE_SITE_NAME=XXXXXXXXXXXX -e WEBSITE_AUTH_ENABLED=False -e PORT=80 -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=XXXXXXXXXXXXXXXXXXXXXXXXXXX.azurewebsites.net -e WEBSITE_INSTANCE_ID=bd0010bcc7f2a648cafc4bcac18f1660692939e3ec29400aeb60d8a3d788c1c3 -e HTTP_LOGGING_ENABLED=1 **IMAGE** -v ${WEBAPP_STORAGE_HOME}/site/wwwroot/storage:/storage 

2021-06-18T08:07:55.414Z INFO  - Starting container for site
2021-06-18T08:07:55.415Z INFO  - docker run -d -p 4849:8081 --name XXXXXXXXXXXXXXXXXX_0_f194ab38_middleware -e WEBSITE_CORS_ALLOWED_ORIGINS=https://XXXXXXXXXXXXXX -e WEBSITE_CORS_SUPPORT_CREDENTIALS=True -e WEBSITES_ENABLE_APP_SERVICE_STORAGE=true -e WEBSITE_SITE_NAME=xXXXXXXXXXXX -e WEBSITE_AUTH_ENABLED=False -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=XXXXXXXXXXXXXX.azurewebsites.net -e WEBSITE_INSTANCE_ID=bd0010bcc7f2a648cafc4bcac18f1660692939e3ec29400aeb60d8a3d788c1c3 -e HTTP_LOGGING_ENABLED=1 appsvc/middleware:1.4.5 /Host.ListenUrl=http://0.0.0.0:8081 /Host.DestinationHostUrl=http://172.16.27.2:80 /Host.UseFileLogging=true 

1 个答案:

答案 0 :(得分:0)

appsetting WEBSITES_ENABLE_APP_SERVICE_STORAGE 用于将 Azure 存储中的位置装载到 /home 装载点。

WEBAPP_STORAGE_HOME 是应用服务中的一个环境变量,映射到应用的持久存储。

https://docs.microsoft.com/en-us/archive/blogs/waws/things-you-should-know-web-apps-and-linux#if-your-site-doesnt-start-check-the-docker-logapplies-to-web-app-for-containers

您还可以利用应用服务内置的“诊断和解决问题”刀片来更好地了解容器崩溃或无法启动的原因。