Capistrano 未打开 rails 控制台
Capistrano not opening rails console
我正在尝试使用 Capistrano 打开 rails 控制台,但它关闭了连接
按照我正在使用的脚本打开 rails console
代码
namespace :rails do
desc "Start a rails console, for now just with the primary server"
task :c do
on roles(:app), primary: true do |role|
rails_env = fetch(:rails_env)
execute_remote_command_with_input "#{bundle_cmd_with_rbenv} rails console #{rails_env}"
end
end
def execute_remote_command_with_input(command)
port = fetch(:port) || 22
puts "opening a console on: #{host}...."
cmd = "ssh -l #{fetch(:deploy_user)} #{host} -p #{port} -t 'cd #{deploy_to}/current && #{command}'"
exec cmd
end
def bundle_cmd_with_rbenv
puts "RBENV_VERSION=#{fetch(:rbenv_ruby)} RBENV_ROOT=#{fetch(:rbenv_path)} #{File.join(fetch(:rbenv_path), '/bin/rbenv')} exec bundle exec"
if fetch(:rbenv_ruby)
"RBENV_VERSION=#{fetch(:rbenv_ruby)} RBENV_ROOT=#{fetch(:rbenv_path)} #{File.join(fetch(:rbenv_path), '/bin/rbenv')} exec bundle exec"
else
"ruby "
end
end
end
详情
我正在使用这个脚本打开 rails 控制台很多次它的工作但是几个月来 rails 控制台打开脚本失败并且不知道如何处理这个.
输出
RBENV_VERSION=2.1.2 RBENV_ROOT=/home/deployer/.rbenv /home/deployer/.rbenv/bin/rbenv exec bundle exec
opening a console on:
Usage:
rails new APP_PATH [options]
Connection to 45.55.142.39 closed.
任何建议都有效
您的 binstub 有问题。
有两件事你必须做。
1) 在您的 deploy.rb
:linked_dirs
中不应包含 bin
目录
2) 这应该在您的 deploy.rb
中:
set :bundle_binstubs, nil
然后您可以 运行 在您的本地计算机上:
rake rails:update:bin
这将在您的存储库中包含 binstub。
告诉我进展如何。
我正在尝试使用 Capistrano 打开 rails 控制台,但它关闭了连接 按照我正在使用的脚本打开 rails console
代码
namespace :rails do
desc "Start a rails console, for now just with the primary server"
task :c do
on roles(:app), primary: true do |role|
rails_env = fetch(:rails_env)
execute_remote_command_with_input "#{bundle_cmd_with_rbenv} rails console #{rails_env}"
end
end
def execute_remote_command_with_input(command)
port = fetch(:port) || 22
puts "opening a console on: #{host}...."
cmd = "ssh -l #{fetch(:deploy_user)} #{host} -p #{port} -t 'cd #{deploy_to}/current && #{command}'"
exec cmd
end
def bundle_cmd_with_rbenv
puts "RBENV_VERSION=#{fetch(:rbenv_ruby)} RBENV_ROOT=#{fetch(:rbenv_path)} #{File.join(fetch(:rbenv_path), '/bin/rbenv')} exec bundle exec"
if fetch(:rbenv_ruby)
"RBENV_VERSION=#{fetch(:rbenv_ruby)} RBENV_ROOT=#{fetch(:rbenv_path)} #{File.join(fetch(:rbenv_path), '/bin/rbenv')} exec bundle exec"
else
"ruby "
end
end
end
详情
我正在使用这个脚本打开 rails 控制台很多次它的工作但是几个月来 rails 控制台打开脚本失败并且不知道如何处理这个.
输出
RBENV_VERSION=2.1.2 RBENV_ROOT=/home/deployer/.rbenv /home/deployer/.rbenv/bin/rbenv exec bundle exec
opening a console on:
Usage:
rails new APP_PATH [options]
Connection to 45.55.142.39 closed.
任何建议都有效
您的 binstub 有问题。 有两件事你必须做。
1) 在您的 deploy.rb
:linked_dirs
中不应包含 bin
目录
2) 这应该在您的 deploy.rb
中:
set :bundle_binstubs, nil
然后您可以 运行 在您的本地计算机上:
rake rails:update:bin
这将在您的存储库中包含 binstub。
告诉我进展如何。