在生产中访问Rails控制台

时间:2014-05-29 18:23:51

标签: ruby-on-rails deployment ruby-on-rails-4 capistrano bundler

我正在使用Capistrano 3来部署rails应用程序,并且在尝试访问我的VPS上的rails控制台时遇到了问题。我跑的时候:

rails console production

我收到一条错误,要求亲戚无法加载文件config/boot.rb。这个问题似乎源于这样一个事实:应用程序正在shared/bin中使用rails可执行文件,而我的所有app逻辑都在current / bin中。问题是shared/config目录不包含boot.rb文件。如果我跑:

bundle install --production
然后一切似乎都有效。我应该从我的上限文件中删除capistrano/bundler并让capistrano脚本运行bundle install --production,还是从capistrano/bundler获得其他好处?

2 个答案:

答案 0 :(得分:2)

Rails控制台脚本使用文件夹bin中的文件。因此,您的bin文件夹必须位于项目的根文件夹中(它已存储在您的存储库中),而不是位于带符号链接的共享文件夹中。

默认capistrano配置问题deploy.rb

  

set:linked_dirs,%w { bin log tmp / pids tmp / cache tmp / sockets vendor / bundle public / system}

因此,在创建符号链接之前,capistrano会删除已存在的文件夹。

  

INFO [b72e6ca9]正在运行/ usr / bin / env rm -rf / MyProject / releases / 20150409074324 / bin

     

INFO [f1ba66e7]正在运行/ usr / bin / env ln -s / MyProject / shared / bin / MyProject / releases / 20150409074324 / bin

bin移除linked_dirs将解决此问题。

答案 1 :(得分:0)

我相信您不需要捆绑安装 - 生产您只能编写捆绑安装 在生产模式下,您可以编写 RAILS_ENV =生产轨道c