我正在尝试让Ruby on Rails在Apple Silicon (M1) Macbook上的Docker上运行。我遇到的问题是Javascript运行时。gem mini_racer依赖于未正确安装的libv8。有类似问题的人似乎要么从源代码编译V8,然后强制libv8/mini_racer使用系统版本。另一条途径似乎是改用NodeJS。
有没有人在M1芯片上的Docker中启动并运行了RoR与Javascript运行时?
发布于 2021-02-17 01:18:27
在我的记忆中,它似乎不是关于M1的,而是mini_racer与libv8有一些问题,但在mac上,我们通常使用以下方法来解决问题
brew tap homebrew/versions
brew install v8-315
gem install libv8 -v '3.16.14.13' -- --with-system-v8
gem install therubyracer -- --with-v8-dir=/usr/local/opt/v8-315
bundle install但是不确定为什么它会发生在你的docker上,另一种方法是检查v8的安装位置,并使用该路径更改-- url。
在docker try error中,提交更多行,让build完成,然后可以ssh in,并尝试使用本地命令。有人提出了以下解决方案。
RUN gem install -N libv8 -v '3.16.14.13' -- --with-system-v8 \
&& bundle config --global build.libv8 --with-system-v8您可以共享您的dockerfile,因此首先我们可以确认它在正常的机器上工作,然后您可以试用。但当然,M1是不同的架构,一些程序还没有准备好。
发布于 2021-03-04 18:59:11
从V8的角度来看,我能说的是:
在硬件上运行最新的V8版本(8.7及更高版本)的
(我不熟悉RoR或Docker,所以我不能提供关于它们的细节。)
https://stackoverflow.com/questions/66226072
复制相似问题