Docker: 502/503 错误,等待对容器预热请求的响应
Docker: 502/503 errors, waiting for response to warmup request for container
我在 Docker 容器中有一个 Web 应用程序,如果我在本地 运行 它可以完美运行,但是当我将它部署到 Azure 时,无论我尝试什么,它都无法运行。我不断收到 502/503 错误。在日志文件中它说:
追溯(最近一次通话):
[错误] 文件“app.py”,第 22 行,在
[错误] app.run(use_reloader=use_reloader,调试=use_reloader,主机=主机,端口=端口)
[错误] 文件“/usr/local/lib/python3.6/site-packages/flask/app.py”,第 922 行,在 运行 中
[错误] run_simple(t.cast(str, host), port, self, **options) [ERROR] 文件“/usr/local/lib/python3.6/site-packages/werkzeug/serving.py”,第 982 行,在 run_simple
[错误] s.bind(server_address)
[错误] socket.gaierror:[Errno -2] 名称或服务未知
我的配置:
Docker文件:EXPOSE 80,应用程序设置:见图片,应用程序 运行s 使用此 python 代码(这只是一个片段,用于显示如何调用环境变量):
if __name__ == '__main__':
# Get environment variables
use_reloader = os.environ.get('use_reloader')
debug = os.environ.get('debug')
port = os.environ.get('port')
# Run the app
app.run(use_reloader=use_reloader, debug=use_reloader, host=host, port=port)
我在这里错过了什么?我在这里查看了与此相关的其他答案,但这对我没有帮助。有人有什么建议吗?谢谢!
编辑:
我尝试了另一次尝试,现在在 Docker 文件中:EXPOSE 8000,在应用程序设置中:端口 80(参见上面的代码片段 app.py)和 WEBSITES_PORT 8000。但现在我得到:等待用于响应容器的预热请求。然后在许多这些消息之后它超时并重新启动......我想我仍然不太明白它如何与端口设置一起工作,有人可以向我解释这个吗?所以我需要知道的是:app.py 中的环境变量 'port'、Docker 文件中的 EXPOSE 以及 'port' 和 'WEBSITES_PORT' 中的设置Web 应用程序中的应用程序设置需要 aligned/configured?我只是找不到关于此的明确信息。
我自己解决了这个问题:错误的原因是我有一个巨大的图像(使用 BERT 模型)但使用的是基本的应用程序计划。我升级到 P1V3,现在它运行得很好,WEBSITES_PORT=8000 和 WEBSITES_CONTAINER_START_LIMIT=1200。请预热 2 分钟。
我在 Docker 容器中有一个 Web 应用程序,如果我在本地 运行 它可以完美运行,但是当我将它部署到 Azure 时,无论我尝试什么,它都无法运行。我不断收到 502/503 错误。在日志文件中它说: 追溯(最近一次通话): [错误] 文件“app.py”,第 22 行,在 [错误] app.run(use_reloader=use_reloader,调试=use_reloader,主机=主机,端口=端口) [错误] 文件“/usr/local/lib/python3.6/site-packages/flask/app.py”,第 922 行,在 运行 中 [错误] run_simple(t.cast(str, host), port, self, **options) [ERROR] 文件“/usr/local/lib/python3.6/site-packages/werkzeug/serving.py”,第 982 行,在 run_simple [错误] s.bind(server_address) [错误] socket.gaierror:[Errno -2] 名称或服务未知
我的配置: Docker文件:EXPOSE 80,应用程序设置:见图片,应用程序 运行s 使用此 python 代码(这只是一个片段,用于显示如何调用环境变量):
if __name__ == '__main__':
# Get environment variables
use_reloader = os.environ.get('use_reloader')
debug = os.environ.get('debug')
port = os.environ.get('port')
# Run the app
app.run(use_reloader=use_reloader, debug=use_reloader, host=host, port=port)
我在这里错过了什么?我在这里查看了与此相关的其他答案,但这对我没有帮助。有人有什么建议吗?谢谢!
编辑: 我尝试了另一次尝试,现在在 Docker 文件中:EXPOSE 8000,在应用程序设置中:端口 80(参见上面的代码片段 app.py)和 WEBSITES_PORT 8000。但现在我得到:等待用于响应容器的预热请求。然后在许多这些消息之后它超时并重新启动......我想我仍然不太明白它如何与端口设置一起工作,有人可以向我解释这个吗?所以我需要知道的是:app.py 中的环境变量 'port'、Docker 文件中的 EXPOSE 以及 'port' 和 'WEBSITES_PORT' 中的设置Web 应用程序中的应用程序设置需要 aligned/configured?我只是找不到关于此的明确信息。
我自己解决了这个问题:错误的原因是我有一个巨大的图像(使用 BERT 模型)但使用的是基本的应用程序计划。我升级到 P1V3,现在它运行得很好,WEBSITES_PORT=8000 和 WEBSITES_CONTAINER_START_LIMIT=1200。请预热 2 分钟。