我正在使用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
获得其他好处?
答案 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