ruby-on-rails - 在任何源中都找不到 nokogiri-1.11.4-x86_64-linux - 运行 Docker 的 Macbook M1

标签 ruby-on-rails ruby nokogiri

我正在运行 Rails 应用程序,并在 Docker 中运行时收到此错误。

Google 上找不到可能的原因的结果。

该 gem 没有出现在我的 Gemfile 中,因此它一定是 Rails 或另一个 gem 的依赖项。

我之前遇到的错误是:-

Could not find 'nokogiri' (>= 1.5.9) among 144 total gem(s) (Gem::MissingSpecError)

为了解决这个问题,我将 gem install nokogiri 添加到我的 Dockerfile 中,现在出现了标题错误。有什么想法吗?

最佳答案

当您在 Dockerfile 中添加 gem install nokogiri 时,它将安装 Linux 兼容的 nokogiri (1.13.3-x86_64-linux) 并将其添加到您的 Gemfile.lock 中。

当您在 Mac 上运行 Rails 时,它将需要 Mac 兼容的 nokogiri (1.13.3-x86_64-darwin)

这是我解决此问题的方法:

  • 我首先从 Mac 运行捆绑安装,在 Gemfile.lock 中添加了 1.13.3-x86_64-darwin
  • 在运行 docker-compose up 之前,我通过运行以下命令将 Linux 平台添加到我的 Gemfile.lock 中: 捆绑锁 --add-platform x86_64-linux

这就是我的 Gemfile.lock 现在的内容:

...
    nokogiri (1.13.3-x86_64-darwin)
      racc (~> 1.4)
    nokogiri (1.13.3-x86_64-linux)
      racc (~> 1.4)
...

PLATFORMS
  x86_64-darwin-21
  x86_64-linux

关于ruby-on-rails - 在任何源中都找不到 nokogiri-1.11.4-x86_64-linux - 运行 Docker 的 Macbook M1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68349768/

相关文章:

ruby-on-rails - response_with 返回未知格式 - rails

ruby-on-rails - 我可以在电子邮件上使用字体精美的图标吗

ruby-on-rails - 了解 `include` mixin 模块的 "subsequent"语句行为

Ruby open-uri 无法打开 url (m1 mac)

ruby - Nokogiri 如何处理未闭合的 HTML 标签,例如 <br>?

ruby-on-rails - 获取 Rails 中某个模型类型的所有记录的所有关联数据?

ruby-on-rails - smalltalk 的 sinatra 是什么?

sql - rails union hack,如何将两个不同的查询放在一起

ruby-on-rails - 在 rails 4 中实现通用搜索

ruby-on-rails - 如何将已安装的 ruby​​ gem 包含在 Rails 中?