我正在使用Taipy,我需要在Heroku上部署我的应用程序。我一直收到错误“Web进程在启动后60秒内无法绑定到$PORT”。下面是日志文件的图像。x1c 0d1x
我的Procfile
web: python main.py --host=0.0.0.0
echo ${GOOGLE_CREDENTIALS} > /app/google-credentials.json
字符串
我已经包含了main.py脚本。脚本的最后一行包含rn函数,该函数用于在默认端口5000
上运行taipy
服务器。我不知道如何调整run()
函数以接受heroku默认端口。编辑:main.py
. . .
if __name__ == "__main__":
Core().run()
scenario = tp.create_scenario(scenario_cfg)
scenario_search = tp.create_scenario(text_search_scenario_cfg)
scenario_search_image = tp.create_scenario(image_search_scenario_cfg)
Gui(pages = pages).run()
型
1条答案
按热度按时间byqmnocz1#
如果你想在Heroku上处理Web请求,你的服务需要在正确的端口上侦听。这在运行时通过
PORT
环境变量提供:在Heroku上,应用程序是完全独立的,不依赖于运行时将Web服务器注入执行环境来创建面向Web的服务。每个Web进程只需绑定到一个端口,并侦听来自该端口的请求。要绑定的端口由Heroku分配为
PORT
环境变量。这可以在
main.py
中完成,但最简单的解决方案可能是将--port
选项添加到Procfile
中的web
进程:字符串
请注意,
Procfile
中的第二行不会做任何事情。Procfile
不是脚本,因此您不能运行任意命令。它们是define process types。如果你可以通过其他方式设置你的证书(例如直接从环境变量读取它们,而不是将变量转储到文件中然后阅读文件),我建议你这样做。如果你真的需要这个文件存在,你可能需要考虑编写一个 Package 器shell脚本来创建文件并启动应用程序。