关于纱线的解释和最佳实践 - 警告完整性检查:系统参数不匹配

Bla*_*man 5 ruby-on-rails docker yarnpkg

当我构建并尝试使用 ruby​​onrails 应用程序运行我的 docker 映像时,我收到此错误:

warning Integrity check: System parameters don't match 
error Integrity check failed 
error Found 1 errors.
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下命令更改我的 Docker 文件

RUN yarn install --check-files
Run Code Online (Sandbox Code Playgroud)

但这没有任何作用。

然后我删除了yarn.lock 文件,我的容器现在运行了。

我猜测问题是 Rails 是在我的笔记本电脑上本地运行的,现在它试图在另一台计算机上运行相同的yarn.lock 文件并且完整性检查失败?它是否正确?

我的 dockerfile 应该做什么?我应该首先排除yarn.lock 文件进入我的docker 容器吗?

Ram*_*ada 6

首先,您需要删除node_modules文件夹并再次运行yarn install。在命令行中,请按照以下说明操作:

  1. 通过键入删除node_modules文件夹rm -rf node_modules
  2. 跑步yarn install
  3. 跑步rails webpacker:install
  4. 重新启动命令行编辑器。
  5. 请注意NodeJS您机器中的版本。它必须与初始化rails项目的版本相同。您可以使用nvm来管理Node版本。


nis*_*yal -1

我建议不要yarn.lock在容器中复制。您可以添加yarn.lock在.dockerignoreDocker 在构建映像时将忽略yarn.lock 的内容。

我也遇到过类似的问题,因为我在本地运行 macOS 并且容器是alpine-based,所以我们最终忽略了yarn.lock