【问题标题】:Accessing Rails Console in production在生产环境中访问 Rails 控制台
【发布时间】:2014-05-29 18:23:51
【问题描述】:

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

rails console production

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

bundle install --production

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

【问题讨论】:

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


    【解决方案1】:

    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

    linked_dirs 中删除bin 将解决此问题。

    【讨论】:

      【解决方案2】:

      相信你不需要bundle install --production 你只能写 bundle install 在生产模式下,您可以在控制台中编写 RAILS_ENV=production rails c

      【讨论】:

        猜你喜欢
        • 2015-05-05
        • 2013-02-15
        • 1970-01-01
        • 2021-05-22
        • 2022-07-05
        • 2013-03-20
        • 1970-01-01
        • 2013-06-29
        • 2012-06-03
        相关资源
        最近更新 更多