capistrano从一个本地目录部署到另一个本地目录

the*_*sis 15 capistrano ruby-on-rails ruby-on-rails-3

我想在我的本地计算机上部署应用程序.例如,我有我的Rails应用程序中: /home/thesis/dev/myapp但我想cap deploy:setup/home/thesis/deploy/.我试过了,但是capistrano尝试连接localhost,但根本不需要它.我该如何解决?

这是我的deploy.rb

role :app, "localhost"
role :web, "localhost"
role :db,  "localhost", :primary => true

set(:deploy_to) { "/home/thesis/dev/myapp" }
set :bundle_without,  [:development, :test]
set :use_sudo, false

set :repository, "."
set :scm, :none
set :deploy_via, :copy

set :copy_dir, "/home/thesis/deploy/tmp"
set :copy_remote_dir, "/home/thesis/deploy/tmp"
Run Code Online (Sandbox Code Playgroud)

它下降:

connection failed for: localhost (Errno::ECONNREFUSED: Connection refused - connect(2))
Run Code Online (Sandbox Code Playgroud)

Oll*_*lly 8

localhost问题是因为你在设置这个role定义.由于您在本地执行所有操作,并且由于Capistrano需要角色,因此您可以设置以下内容:

role :app, ""
Run Code Online (Sandbox Code Playgroud)

我也认为你正在设置copy_dircopy_remote_dir值不正确.我建议删除这些并让Capistrano使用它的默认值.

这是一个适合您的完整配置:

role :app, ""

set :use_sudo, false
set :application, 'thesis'     # you'll need to specify an app name
set :repository, "."
set :scm, :none
set :deploy_to, "/home/thesis/deploy/"   # the destination dir
set :deploy_via, :copy

# override deploy:restart since this isn't a Rails app
namespace :deploy do
  task :restart do
    # no-op
  end
end
Run Code Online (Sandbox Code Playgroud)