我正在运行 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/