ruby-on-rails - 在 docker 容器中运行 Rails 应用程序

标签 ruby-on-rails ruby linux docker debian

我想在 debian 机器上的 docker 容器中运行 Rails 4.2.1 应用程序。

当我运行 bundle exec rails s 时,我得到了这个错误:

Could not find json-1.7.7 in any of the sources
Run `bundle install` to install missing gems.

当我运行 bundle install 时出现这个错误:

Gem::Ext::BuildError:错误:无法构建 gem native 扩展。

/usr/local/rvm/rubies/ruby-2.2.1/bin/ruby -r ./siteconf20150604-137-10l84fa.                                                                                              rb extconf.rb
creating Makefile

make "DESTDIR=" clean

make "DESTDIR="
compiling generator.c
In file included from generator.c:1:0:
../fbuffer/fbuffer.h: In function 'fbuffer_to_s':
../fbuffer/fbuffer.h:175:47: error: macro "rb_str_new" requires 2 arguments,    but                                                                                                only 1 given
 VALUE result = rb_str_new(FBUFFER_PAIR(fb));
                                           ^
../fbuffer/fbuffer.h:175:20: warning: initialization makes integer from pointer                                                                                             without a cast
 VALUE result = rb_str_new(FBUFFER_PAIR(fb));
                ^
 Makefile:237: recipe for target 'generator.o' failed
  make: *** [generator.o] Error 1

  make failed, exit code 2

 Gem files will remain installed in /var/www/test/xyz/vendor/bundle/ruby/2                                                                                              .2.0/gems/json-1.7.7 for inspection.
Results logged to /var/www/test/xyz/vendor/bundle/ruby/2.2.0/extensions/x                                                                                                86_64-linux/2.2.0/json-1.7.7/gem_make.out
An error occurred while installing json (1.7.7), and Bundler cannot continue.
Make sure that `gem install json -v '1.7.7'` succeeds before bundling.

怎么了?我现在可以做什么?

最佳答案

docker-rails是我刚刚创建的一个项目,用于使用 docker(和 CI)制作 Rails 非常简单。我认为它可以帮助您减少在 docker 上启动和运行 rails 所需的配置量。

它创建一个全局共享的 gem 卷(以加速 bundler ),并有一个示例 Dockerfile 供使用。

考虑到 native 错误,我猜您的 Dockerfile 缺少所需的包,您可能需要更新您的 apt-get 语句。

关于ruby-on-rails - 在 docker 容器中运行 Rails 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30641367/

相关文章:

linux - 了解 grep 的行为

linux - 如何在Windows中使用Putty(SSH)登录linux

linux - 如何使用 dd 命令创建具有特定值的文件?

ruby-on-rails - 在 Ruby 2.0.0 上安装 Rubygems 失败 在 OSX Mavericks 上安装

Ruby:从父类访问调用子类常量?

ruby - RSpec should_receive 没有到达类中的方法

ruby - 省略 Ruby 的指数运算符周围的空格有什么意义?

ruby-on-rails - Rack Web 服务器和 https : tutorial?

ruby-on-rails - 使用rails3模拟外部API对象

ruby-on-rails - 乘客托管的 Rails 应用程序*痛苦* 慢,但服务器是个野兽