问题描述
我正在尝试使用 MysqL2 gem 构建和启动 Rails 6 容器。一切正常,但是当我启动 Rails 服务器时,出现错误
/usr/local/bundle/gems/activesupport-6.0.3.6/lib/active_support/dependencies.rb:324:in `require': libmariadb.so.3: cannot open shared object file: No such file or directory - /usr/local/bundle/gems/MysqL2-0.5.3/lib/MysqL2/MysqL2.so (LoadError)
我的 Dockerfile 的相关部分是我安装本机扩展的地方。我知道 MariaDB 也是一种选择,但我也尝试过,但遇到了同样的错误。
apt-get update -qq && apt-get install -y git openssh-client build-essential pkg-config default-MysqL-client default-libMysqLclient-dev libsqlite3-dev ;\
我使用的是 MysqL2 (0.5.3) 和 Rails 6.0.3.6
大家有什么建议吗?我可能已经花了一个星期的时间,您的帮助将不胜感激。谢谢!
解决方法
我发现了这个问题。
在我的 Dockerfile 中,我有另一个 FROM 子句在我的 apt-get 安装之后。这样做会重置文件的范围,因此这些依赖项在 Rails 服务器运行时不可用。我删除了它,它起作用了。