Eti*_*ube 10 containers azure docker azure-web-app-service
我正在尝试在 Azure 的应用服务上部署一个 dockerized 应用程序。我正确输入了所有字段,我的图像被拉出,然后我不断收到此错误,直到出现超时。
Waiting for response to warmup request for container -<container name > Elapsed time = 154.673506 sec
Run Code Online (Sandbox Code Playgroud)
我确实设置了 WEBSITE_PORT 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"]
Run Code Online (Sandbox Code Playgroud)
它工作正常。我昨晚让它工作了。我想刷新我的图像,所以我重新启动。没有任何效果。几个小时后,我删除了我的应用程序并重新开始......不走运。有任何想法吗?
编辑 1: 尝试将端口更改为 80,但不走运(这是我最初在正常工作时使用的端口)
已解决(部分)* 我将所有内容更改为 8000 端口。我意识到 Linux 和 Windows 不喜欢在 80 上进行非系统监听。因此,我更改了 8000 上的所有内容并在 Azure {WEBSITE_PORT, 8000} 上设置了系统属性。它现在似乎工作正常。我不知道这是否是官方修复...但它会在 30 秒后预热
就我而言,这种速度减慢是由自动端口检测引起的。在应用程序设置中设置WEBSITES_PORT解决了该问题。
WEBSITES_PORT=8000
Run Code Online (Sandbox Code Playgroud)
请注意,如果您有更多插槽(生产/登台?),您也必须在其他插槽中设置此环境变量。
来自:Linux 上的 Azure 应用服务常见问题解答 - 自定义容器
我们有自动端口检测。您还可以指定名为 WEBSITES_PORT 的应用程序设置,并为其指定预期端口号的值。此前,该平台使用 PORT 应用程序设置。我们计划弃用此应用程序设置并专门使用 WEBSITES_PORT。
根据您拥有的应用服务计划,如果有选项 \xe2\x80\x98always on\xe2\x80\x99,请尝试在应用程序配置中将 \xe2\x80\x98always on\xe2\x80\x99 设置为Azure 门户。
\n\n\n\n如果您使用的是高级应用程序服务计划,您可以设置预热实例数。尝试将其设置为 2-3,看看它是否会变得更好......这里
\n\n我和你有同样的经历,但是我的容器非常大,因为它包含ML模型,所以最后我切换到AKS,因为它性能更好..
\n对我来说真正有用的是Ethiene和kgalic上面的答案的组合,在docker文件中将所有端口设置为8000
EXPOSE 8000
CMD gunicorn -w 4 -b :8000 app:app
Run Code Online (Sandbox Code Playgroud)
在天蓝色配置应用程序设置中添加
"WEBSITES_PORT" : "8000"
Run Code Online (Sandbox Code Playgroud)
在天蓝色配置常规设置中设置
"Always on" : "on"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10811 次 |
| 最近记录: |