推送代码至Heroku时卡在Gemfile.lock的BUNDLED WITH版本处如何解决
推送Heroku卡在
BUNDLED WITH version in the Gemfile.lock步骤的解决方案 1. 对齐Bundler版本与Heroku支持范围
- 首先执行
bundler -v查看本地使用的Bundler版本 - Heroku Ruby buildpack仅支持特定范围内的Bundler版本,若本地版本过高/不匹配,先卸载当前版本:
gem uninstall bundler - 安装官方验证的稳定兼容版本:
gem install bundler -v 2.3.26 - 重新生成Gemfile.lock文件:
bundle install,之后重新执行推送操作
2. 清理本地Bundler缓存与残留配置
- 本地缓存损坏、配置异常是常见的卡住原因,依次执行以下命令清理:
bundle clean --force rm -rf .bundle/ rm Gemfile.lock bundle install
- 清理完成后重新执行
git push heroku main(将main替换为你实际要推送的分支名)
3. 调整Heroku构建配置
- 部分场景下Bundler的调试输出、多余依赖组的安装会导致进程阻塞,可先执行配置修改:
heroku config:set BUNDLE_WITHOUT="development:test" BUILDPACK_DEBUG=0 - 推送完成后如果需要排查构建问题,再按需修改配置即可
4. 排查Gem依赖异常
- 若Gemfile中配置了私有Gems源、依赖了需要本地编译且系统依赖缺失的Gem,也会导致安装过程静默卡住
- 可先注释掉非必要的私有源、测试环境专用Gem,重新生成lock文件后推送测试
5. 排查网络环境问题
- 本地网络波动、代理配置异常会导致Heroku拉取Gem资源时超时无响应,可先关闭代理切换至稳定网络后重新推送,也可执行
git push heroku main --verbose开启详细日志,定位具体卡住的环节
内容的提问来源于stack exchange,提问作者LuucasOG
相关产品推荐
相关产品推荐

