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

Azure应用程序服务共享主机断开容器启动

冀望
2023-03-14

我有一个Azure应用程序服务运行我自己的docker映像,它基于节点:14 alpine

部署到服务工作正常,网站按预期运行。

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

我想使用内置的持久化存储,并将应用程序设置WEBSITES\u ENABLE\u APP\u SERVICE\u 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\u ENABLE\u APP\u SERVICE\u STORAGE破坏我的容器?我可以访问正在运行的kudu实例,但我甚至找不到节点网站模块。

是否有任何日志,将允许我查看什么是失败的或任何我没有考虑与WEBSITES_ENABLE_APP_SERVICE_STORAGE设置?

共有1个答案

蒋承教
2023-03-14

首先,通过将环境变量WEBSITES\u enable\u APP\u SERVICE\u storage设置为true不会影响容器操作来启用持久存储。这只意味着您可以使用或不使用持久存储。

第二,如果您将环境变量WEBSITES_ENABLE_APP_SERVICE_STORAGE设置为true,那么您还需要配置挂载路径。到目前为止,据我所知,它只能在docker-comment文件中配置。下面是一个例子。

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

 类似资料:
  • 我有一个Azure应用服务运行我自己的基于PHP的docker映像(mcr.microsoft.com/appsvc/php: 7.4-apache_20201229.1) 部署到服务作品和网站按预期运行() 我希望能够使用持久性存储来保存失败/web应用程序重新启动时的数据。。。 我想使用内置的持久化存储,并将应用程序设置,使用docker compose如下: 但是,在更改此设置并停止/启动w

  • 我创建了一个运行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,因为它是不健康的。 由于它是一个资源密集型

  • 我已将spring-boot应用程序部署到IIS/嵌入式tomcat,作为一个azure应用程序服务。当应用程序服务启动时,应用程序日志显示同一实例大约每10分钟发生一次重新启动(新的pid)。90分钟后,它将最终成功部署。我从嵌入的tomcat日志和org.springframework日志中看不到任何问题,但有时它可能在2分钟内开始。 我还可以在哪里查找启动错误,有没有办法增加应用服务启动时间

  • 我在azure中有一个运行docker容器的应用程序服务。 日志显示它正在使用下面的docker run命令运行。我隐藏了一些私人公司的价值观。 docker run-d-p 4040:443--name hidden-e WEBSITE\u SITE\u name=hidden-e WEBSITE\u AUTH\u ENABLED=False-e PORT=443-e WEBSITE\u ROL

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

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