You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ChainLit Python应用部署Heroku失败,出现H10(应用崩溃)错误

解决ChainLit应用部署Heroku后H10崩溃问题

以下是针对H10错误的排查和解决步骤:

1. 获取完整崩溃日志

当前仅有的路由日志无法说明崩溃根源,需查看Heroku dyno的启动日志:

  • 执行命令:heroku logs --tail --app <你的Heroku应用名>
  • 或登录Heroku控制台,进入应用的「More > View logs」,查看启动阶段的报错信息,比如依赖缺失、环境变量未找到、端口冲突等。

2. 修正端口配置

Heroku会通过PORT环境变量分配随机端口,ChainLit默认使用固定端口,需修改启动命令适配:
将Procfile内容改为:

web: chainlit run genai.py --port $PORT --headless

--headless参数用于适配Heroku的无头运行环境,避免因UI启动失败导致崩溃。

3. 配置Heroku环境变量

你在Bitbucket构建步骤中导出的Azure OpenAI相关变量,并未同步到Heroku的运行环境中,需手动配置:

  • 登录Heroku控制台,进入应用的「Settings > Config Vars」
  • 添加以下变量:
    • AZURE_OPENAI_KEY
    • AZURE_OPENAI_ENDPOINT
    • AZURE_OPENAI_VERSION
    • AZURE_OPENAI_DEPLOYMENT
    • AZURE_OPENAI_MODEL
  • 或通过CLI执行:
heroku config:set AZURE_OPENAI_KEY=xxx AZURE_OPENAI_ENDPOINT=xxx ... --app <你的应用名>

4. 统一Python版本

Bitbucket使用Python 3.12,但Heroku默认可能使用不同版本,需在项目根目录添加runtime.txt文件,指定版本:

python-3.12.0

确保Heroku使用与构建环境一致的Python版本,避免依赖兼容性问题。

5. 确认打包文件完整性

检查Bitbucket打包的my-app.tar.gz是否包含所有必要文件:

  • 确保genai.py、Procfile、requirements.txt等文件已被git追踪(未被.gitignore排除),因为git archive仅打包git追踪的文件。
  • 可在Bitbucket构建步骤中添加ls -la命令,查看打包前的文件列表,确认无遗漏。

6. 验证依赖安装

确认Heroku上的依赖是否正确安装:

  • 查看Heroku日志中的Installing dependencies阶段,是否有报错(如依赖版本冲突、缺失系统库)。
  • 若ChainLit依赖系统库,需添加Aptfile到项目根目录,指定需要安装的系统包,比如:
libpq-dev

内容的提问来源于stack exchange,提问作者Ali Asad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 00:58:10