ExecJS:RuntimeUnavailable:找不到 Javascript 运行时 Docker 应用程序



我正在尝试使用 Docker 构建一个容器 rails 应用程序。在我的宝石文件中,execjs宝石已经存在。但是,在运行服务器时,我收到以下错误

ExecJS:RuntimeUnavailable: Could not find a javascript runtime

进一步挖掘后,我发现添加宝石therubyracermini_racer可以解决问题。 但是,通过添加该内容,我得到以下错误。

Unable to load application: LoadError: Error relocating /usr/local/bundle/gems/therubyracer-0.12.3/lib/v8/init.so: __vfprintf_chk: symbol not found - /usr/local/bundle/gems/therubyracer-0.12.3/lib/v8/init.so

请帮忙

这个问题之所以提出therubyracer是因为所有者没有积极维护宝石。

当移动到ruby:2.6.5-slim docker 映像时,我也遇到了同样的问题ruby:2.6.5-alpine。经过几个小时的谷歌搜索,我找到了解决它的解决方案。

安装 nodejspython v2.7软件包,并在 Gemfile
中添加 gem gem 'libv8-alpine', '~> 6.7', '>= 6.7.288.46.1' 并从宝石文件中删除gem 'therubyracer'

围栏:
libv8-alpine
在此处输入链接说明

升级execjs gem。

在现代Mac上,JSC生活在一个不同的地方。我在运行Big Sur的新M1 Mac mini上设置我们的Rails应用程序时收到此错误消息。

升级到execjs 2.8.0+为我解决了这个问题:

Gemfile

gem "execjs", "2.8.1"

您可以在此处查看合并提交:

https://github.com/rails/execjs/pull/98

最新更新