我试图在苹果芯片(M1)的Macbook上运行一个Ruby on Rails项目。我的问题在于Javascript runtime。gem mini_racer依赖于libv8,但是其无法正确安装。有人遇到类似的问题,似乎要么编译源代码安装V8,并强制使用系统版本的libv8/mini_racer,要么使用NodeJS代替。
是否有人已经在M1芯片上成功地在Docker中运行了带有Javascript runtime的RoR项目?
我试图在苹果芯片(M1)的Macbook上运行一个Ruby on Rails项目。我的问题在于Javascript runtime。gem mini_racer依赖于libv8,但是其无法正确安装。有人遇到类似的问题,似乎要么编译源代码安装V8,并强制使用系统版本的libv8/mini_racer,要么使用NodeJS代替。
是否有人已经在M1芯片上成功地在Docker中运行了带有Javascript runtime的RoR项目?
从V8的角度来看,我能说的是:
我不熟悉RoR或Docker,因此无法就这些具体问题提供帮助。
据我所记,这与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安装位置,并将--with url更改为该路径。
在错误提交之前,在Docker中让构建完成,然后您可以ssh进入并尝试本地命令。有人建议以下解决方案。
RUN gem install -N libv8 -v '3.16.14.13' -- --with-system-v8 \
&& bundle config --global build.libv8 --with-system-v8
您可以分享您的Docker文件,这样我们可以先确认它在普通机器上是否可用,然后再进行尝试。但是,当然,M1是不同的架构,一些程序还没有为其做好准备。