当前位置: 首页 > 知识库问答 >
问题:

Azure应用程序服务共享宿主容器启动失败

颜高格
2023-03-14

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

部署到服务作品和网站按预期运行(WEBSITES_ENABLE_APP_SERVICE_STORAGE: false

我希望能够使用持久性存储来保存失败/web应用程序重新启动时的数据。。。

我想使用内置的持久化存储,并将应用程序设置WEBSITES\u ENABLE\u APP\u SERVICE\u storage设置为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

关于我的容器,什么是网站\启用\应用\服务\存储中断?我有bash访问正在运行的kudu实例(ssh中断)的权限,并且我没有从我的应用程序中看到任何文件

是否有任何日志允许我查看网站\启用\应用\服务\存储设置中失败的内容或我没有考虑的内容?

谢谢

编辑:

在startup命令中仅将网站\u ENABLE\u APP\u SERVICE\u STORAGE=true,并添加-v${WEBAPP\u STORAGE\u 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个答案

班承德
2023-03-14

appsetting网站\启用\应用\服务\存储用于将Azure存储中的位置装载到/主装载点。

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

https://docs.microsoft.com/en-us/archive/blogs/waws/things-you-should-know-web-apps-and-linux#if-您的站点未开始检查docker logapplies to web app中的容器。

您还可以使用应用服务内置“诊断和解决问题”边栏选项卡来更好地理解容器崩溃或无法启动的原因。

 类似资料:
  • 我有一个Azure应用程序服务运行我自己的docker映像,它基于。 部署到服务工作正常,网站按预期运行。 我希望能够在容器之间共享一些文件,以前我一直使用映射为docker卷的Azure FileStorage帐户,但由于某些原因,docker/pm2/node会不断执行写入操作,这意味着巨大的成本。 我想使用内置的持久化存储,并将应用程序设置设置为true,从理论上讲,这应该在容器之间共享目录

  • 我创建了一个运行docker容器的Azure应用服务。 但是容器似乎一直在重新启动:2020-01-09 07:21:56.543INFO-用于站点xxx的容器xxx初始化成功,并准备好服务请求。2020-01-09 07:22:01.559错误-用于站点xxx的容器不健康,停止站点。2020-01-09 07:22:01.559INFO-停止站点xxx,因为它是不健康的。 由于它是一个资源密集型

  • 我过去曾在Azure应用服务上发布过一系列Docker应用,但由于某些原因,在Azure运营模式中创建新的生成和发布管道后,我的Docker容器将无法在Azure应用服务中运行。这些特殊的容器味道Linux。 在各种Docker映像之间切换,任何使用旧管道构建的映像都可以工作,但使用新管道构建的映像则不行。 当我将应用程序服务的日志文件中的确切命令复制粘贴到本地命令行时,它工作得很好。我可以使用与

  • 我目前正在规划一个我想构建的移动应用程序,以及一个配套的web应用程序。移动应用程序和Web应用程序将共享通用数据(例如,用户可以在移动应用程序中进行问卷调查,也可以在Web应用程序上进行相同的问卷调查)。 几年前我曾使用Azure创建和托管一个web应用程序,但这是我在移动开发领域的第一次尝试。我正试图理解Azure中托管API的架构。 我到处寻找,但是要么找不到我的问题的明确答案,要么不太理解

  • 在Microsoft.azure.services.appauthentication.azureSeviceTokenProvider.getAccessStokenAsyncimpl(字符串权限、字符串资源、字符串范围)在Microsoft.azure.keyvault.keyvault.keyvaultCredential.postAuthenticate(HttpResponseMessa

  • 我正在设置micronaut应用程序,但部署失败,出现以下异常: 我们有3个环境:开发,测试和生产。它在开发和测试中工作,但不在生产中。我们验证了环境变量和jdk版本。我们在云环境中,相同的映像正在部署在开发、测试和生产中。 NA