部署到dokku失败,因为ruby-buildpack + bundler?

xxe27gdn  于 2023-01-12  发布在  Ruby
关注(0)|答案(1)|浏览(80)

我正在dokku上部署一个rails应用程序,版本如下:

  • Ruby3.1.2
  • Bundler 2.3.26(在我的开发计算机上)
  • gem 3.3.22(在我的开发计算机上)

当我尝试部署到dokku时,使用了heroku ruby构建包,并得到以下输出:

-----> Ruby app detected
-----> Installing bundler 2.2.21
-----> Removing BUNDLED WITH version in the Gemfile.lock
-----> Compiling Ruby/Rails
-----> Using Ruby version: ruby-3.1.2
-----> Installing dependencies using bundler 2.2.21
       Running: BUNDLE_WITHOUT='development:test' BUNDLE_PATH=vendor/bundle BUNDLE_BIN=vendor/bundle/bin BUNDLE_DEPLOYMENT=1 bundle install -j4
       [330, #<Thread:0x00007fc0e8b43c90 run>, #<NameError: uninitialized constant Gem::Source
       (defined?(@source) && @source) || Gem::Source::Installed.new
       ^

最疯狂的是:我有另一个应用程序具有相同的配置,它的工作:

-----> Ruby app detected
-----> Installing bundler 2.2.21
-----> Removing BUNDLED WITH version in the Gemfile.lock
-----> Compiling Ruby/Rails
-----> Using Ruby version: ruby-3.1.2
-----> Installing dependencies using bundler 2.2.21
       Running: BUNDLE_WITHOUT='development:test' BUNDLE_PATH=vendor/bundle BUNDLE_BIN=vendor/bundle/bin BUNDLE_DEPLOYMENT=1 bundle install -j4
       Fetching gem metadata from https://rubygems.org/.........

我目前的研究:
这似乎是2022年2月首次描述的bundler 2.3.7的问题,但我的构建包使用bundler 2.2.21,所以它应该不会受到影响?
最新的ruby-buildpack from heroku似乎已经在2021年发布了,这是真的吗?
这修复了一个应用程序的问题:

  • 升级到ruby 3.1.3(通过编辑Gemfile.ruby-version中的ruby版本)
  • 捆绑安装
  • 捆绑锁--添加平台x86_64-linux

在一次成功安装之后,我还可以回滚到升级之前的旧Ruby版本,并成功安装。
怎么会?为什么?这是怎么回事?
现在另一个曾经能正常工作的应用程序停止工作了。

fnx2tebb

fnx2tebb1#

这修复了问题:

  • 升级到ruby 3.1.3(通过编辑Gemfile.ruby-version中的ruby版本)
  • 捆绑安装
  • 捆绑锁--添加平台x86_64-linux

在一次成功安装之后,我还可以回滚到升级之前的旧Ruby版本,并成功安装。
怎么会?为什么?这是怎么回事?

相关问题