Я пытаюсь развернуть приложение rails на локальной виртуальной машине, которая запускает Ubuntu 14 LTS. Я использую nginx и phusion-пассажир. Кроме того, я использую capistrano gem для развертывания.Развертывание Rails-приложения на сервере Ubuntu с использованием Capistrano 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;
}
Может вы пытаетесь найти решения в [этой теме] (http://stackoverflow.com/questio нс/33567498/Capistrano-развернуть-ошибки-время-развертывание к Ubuntu-сервер)? – BoraMa
Вы уверены, что сможете использовать SSH на сервере таргетинга? – qcam
Когда я просто набираю ssh neil @ address_of_the_server Я обращаюсь к серверу без проблем. – Neil