2016-04-10 57 views
0

我尝试在运行ubuntu 14 LTS的本地虚拟机上部署我的rails应用程序。我使用nginx和phusion乘客。另外,我使用capistrano gem进行部署。使用Capistrano在Ubuntu服务器上部署Rails应用程序gem

我将本地ssh密钥添加到虚拟机的授权密钥。
我也有通过ssh连接到我的虚拟机一样,没有任何问题:
SSH [email protected]

然而,当我写:

bundle exec cap production deploy 

我得到以下错误:

cap aborted! 

Net::SSH::Disconnect: connection closed by remote host 

EOFError: end of file reached 

Tasks: TOP => rbenv:validate 

我deploy.rb文件:

server "192.168.0.8", port: 80, roles: %i(:web :app :db), primary: true 
set :log_level, :debug 

set :application, "mySimpleBlog" 
set :repo_url, "[email protected]:NeilAlishev/mySimpleBlog.git" 
set :user,   "neil" 
set :linked_files, fetch(:linked_files, []).push("config/database.yml", "config/secrets.yml") 
set :linked_dirs, fetch(:linked_dirs, []).push("log", "tmp/pids", "tmp/cache", "tmp/sockets", 
    "vendor/bundle", "public/system", "public/uploads") 
set :deploy_to,  "/home/#{fetch(:user)}/src/#{fetch(:application)}" 

set :rbenv_type, :user 
set :rbenv_ruby, "2.2.4" 
set :rbenv_prefix, "RBENV_ROOT=#{fetch(:rbenv_path)} "\ 
    "RBENV_VERSION=#{fetch(:rbenv_ruby)} #{fetch(:rbenv_path)}/bin/rbenv exec" 
set :rbenv_map_bins, %w(rake gem bundle ruby rails) 
set :rbenv_roles, :all 

namespace :deploy do 
    desc "Restart application" 
    task :restart do 
    on roles(:app), in: :sequence, wait: 5 do 
     execute :touch, release_path.join("tmp/restart.txt") 
    end 
    end 

    after :publishing, "deploy:restart" 
    after :finishing, "deploy:cleanup" 
end 

我的部署/ production.rb文件:

set :stage, :production 
server "192.168.0.8", user: "neil", roles: %w(web app db) 
role :app, %w([email protected]) 
role :web, %w([email protected]) 
role :db, %w([email protected]) 

我的nginx.conf文件:

server { 
listen 80; 
server_name 192.168.0.8; 
charset utf-8; 
rails_env production; 
passenger_enabled on; 
root /home/neil/mySimpleBlog/current/public; 
} 
+0

灿你在[这个线程](http://stackoverflow.com/questio NS/33567498/Capistrano的部署错误,而-部署到Ubuntu的服务器)? – BoraMa

+0

您确定您可以通过SSH连接到定位服务器吗? – qcam

+0

当我只输入 ssh neil @ address_of_the_server 我访问服务器没有任何问题。 – Neil

回答

0

变化production.rb这样,

role :app, 'address_of_the_server', { 
:ssh_options => { 
:keys => 'key_path(like ~/.ssh/key_name.pem)' 
} 
} 

role :web, 'address_of_the_server', { 
:ssh_options => { 
:keys => 'key_path(like ~/.ssh/key_name.pem)' 
} 
} 

role :db, 'address_of_the_server', { 
:ssh_options => { 
    :keys => 'key_path(like ~/.ssh/key_name.pem)' 
} 
} 
+0

没有帮助,得到相同的错误( – Neil

相关问题