Heroku部署Flask容器后无法调用应用端点问题求助
Heroku容器部署Flask应用H14错误解决方法
从你提供的错误日志中的code=H14 desc="No web processes running"可直接定位根因:Heroku的官方路由只会将外部用户请求转发给web类型的进程,你当前启动的进程类型为los(可从日志的heroku[los.1]标识确认),不符合Heroku的路由转发规则,因此哪怕Gunicorn本身启动正常,外部请求也无法到达应用。
修复步骤
- 检查容器部署对应的配置文件:
如果你使用heroku.yml定义部署规则,错误的run配置会使用非web的进程名,示例如下:
需将run下的进程名修改为build: docker: web: Dockerfile run: los: gunicorn --bind 0.0.0.0:$PORT wsgi:appweb:build: docker: web: Dockerfile run: web: gunicorn --bind 0.0.0.0:$PORT wsgi:app - 如果你使用
Procfile定义启动命令,需确保内容前缀为web:,正确配置如下:web: gunicorn --bind 0.0.0.0:$PORT wsgi:app - 配置修改后重新部署应用,部署完成后执行
heroku ps:scale web=1命令,确保至少有1个web进程正常运行。
其他配置校验
你当前的Dockerfile启动命令、Flask入口读取环境变量PORT的逻辑均符合Heroku的要求,无需额外调整。修改进程类型后即可正常接收外部请求。
内容的提问来源于stack exchange,提问作者texdade
相关产品推荐
相关产品推荐

