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

Docker从不在Azure上运行-等待对容器的预热请求的响应

容磊
2023-03-14

我正在尝试在Azure的应用程序服务上部署停靠的应用程序。我正确地输入了所有的字段,我的图像被拉出来,我一直得到这个错误,直到有东西超时。

Waiting for response to warmup request for container -<container name > Elapsed time = 154.673506 sec

我确实设置了网站_端口8080(由我的应用程序使用)

这是dockerfile

FROM google/dart

WORKDIR /app
ADD pubspec.* /app/
RUN pub get --no-precompile
ADD . /app/
RUN pub get --offline --no-precompile

WORKDIR /app
EXPOSE 8080

ENTRYPOINT ["pub", "run", "aqueduct:aqueduct", "serve", "--port", "8080"]

它工作得很好。昨晚我让它工作了。我想刷新我的形象,所以我重新开始。什么都没起作用。几个小时后,我删除了我的应用程序,重新开始...运气不好。有什么想法吗?

编辑1:尝试将端口更改为80,没有运气(这是我第一次使用的端口,当它工作正常时)

已解决(部分)*我将所有内容更改为端口8000。我意识到Linux和windows不喜欢让非系统的东西在80上监听。因此,我在8000上更改了所有内容,并在Azure{WEBSITE_PORT,8000}上设置了系统属性。现在看来效果不错。我不知道这是否是官方的修复。。。但它在30秒后会预热

共有3个答案

姚星腾
2023-03-14

实际上对我有用的是上面埃塞俄比亚和kgalic的答案的组合,在docker文件中将所有端口设置为8000

EXPOSE 8000
CMD gunicorn -w 4 -b :8000 app:app

在azure配置应用程序设置中添加

"WEBSITES_PORT" : "8000" 

在azure配置常规设置中

"Always on" : "on"
刘曾琪
2023-03-14

根据您拥有的应用程序服务计划,如果存在“始终打开”选项,请尝试在Azure portal中的应用程序配置中设置“始终打开”。

如果您使用的是高级应用程序服务计划,则可以设置预热实例数。试着将其设置为2-3,看看是否会变得更好。。在这里

我和你有同样的经历,但我的容器非常大,因为它包含ML模型,所以最后我切换到AKS,因为它性能更好。。

古凌
2023-03-14

您也可以尝试将WEBSITES\u CONTAINER\u START\u TIME\u LIMIT设置为1800

 类似资料:
  • 是否可以在不等待响应的情况下发送HTTP请求? 我在做一个物联网项目,需要记录传感器的数据。在每一个设置中,都有许多传感器,一个中央协调器(主要由Raspberry Pi实现)从传感器收集数据,并通过Internet将数据发送到服务器。 提前感谢! 编辑:传感器是无线的,但他们使用的技术在发送到协调器时很少(或没有)延迟。此协调器必须通过Internet发送数据。但是,假设互联网连接不好。因为这将

  • 我正在尝试在linux操作系统中的Azure web app上运行docker容器。web应用服务器正在成功拉取映像,但在执行run命令时失败,错误消息为:未响应端口9000上的HTTP ping 在我的yml文件中,我有 我错过了什么?

  • 问题内容: 在容器内运行服务时,假设使用mongodb命令 将立即退出,并返回容器ID。在我的CI脚本中,我在运行mongo容器之后立即运行客户端以测试mongodb连接。问题是:由于服务尚未启动,客户端无法连接。除了在脚本中添加大字体外,我看不到任何等待容器启动并运行的选项。 Docker的命令在这种情况下不起作用,因为该容器不存在。是docker的限制吗? 问题答案: 如在docker 1.1

  • 问题内容: 我在CI和CD上创建了Jenkinsfile,Dockerfile,Dockerfile.test到CI和CD,在GitHub上构建了我的服务器API,我在Jenkins上构建了该构建,并且构建成功,并且我的docker在Jenkinsfile阶段也在容器上运行,我创建了用于测试和部署在服务器API上,并使用docker作为容器 我也使用docker-compose在docker上运行

  • 问题内容: 我在项目中将Django与PostgreSQL一起使用。我把它们放在不同的容器中,问题是我需要在运行django之前等待postgres。这时我正在用django容器的command.sh文件执行此操作。我还发现netcat可以解决问题,但是我更喜欢没有附加软件包的方法。curl和wget无法执行此操作,因为它们不支持postgres协议。有办法吗? 问题答案: 您的解决方案tizia

  • 我有以下Dockerfile: 以及以下docker-compose.yml: 如果我通过docker cmd以以下方式手动运行Dockerfile: 看起来一切正常,我得到了它实际执行的应用程序输出日志: 但是,当我试图通过docker-comment以以下方式执行我的应用程序时: 我的应用程序似乎启动正常,但无法继续执行。以下是输出: 我尝试执行show logs命令: 但我得到的唯一记录是第