Проблемы развертывания с Capistrano - PullRequest
3 голосов
/ 12 марта 2012

Я следую хорошему учебнику здесь , и это действительно помогло обернуть мою голову вокруг некоторых вещей.Rails apache и rvm прекрасно работают вместе.Я почти закончил, но застрял в последней части.

По сути, у меня есть файл развертывания, аналогичный тому, что у него есть, но, похоже, я не могу отладить то, что он ищет. Файл deploy.rb выглядит следующим образом:

#RVM Bootstrap
$:.unshift(File.expand_path('./lib',ENV['rvm_path']))

require 'rvm/capistrano'
set :rvm_ruby_string, '1.9.2-p318'


#bundler bootstrap
require 'bundler/capistrano'

#main details
set :application , "test"
role :web, "test"
role :app, "test"
role :db, "test", :primary => true

#server Details
default_run_options[:pty] = true
ssh_options[:forward_agent] = true
set :deploy_to, "/var/www/test/"
set :deploy_via, :remote_cache
set :user, "passenger"
set :use_sudo, false


# repo details
set :scm, :git
set :scm_username, "passenger"
set :repository, "git@gitserver:test.git"
set :branch, "master"
set :git_enable_submodules, 1

# tasks
namespace :deploy do
  task :start, :roles => :app do
    run "touch #{current_path}/tmp/restart.txt"
  end

  task :stop, :roles => :app do
    # Do nothing.
  end
  desc "Restart Application"
  task :restart, :roles => :app do
    run "touch #{current_path}/tmp/restart.txt"
  end
end

Когда я пытаюсь развернуть приложение с помощью capistrano с помощью cap deploy: setup, я получаю следующую ошибку:

  * executing `deploy:setup'
  * executing "mkdir -p /var/www/test/ /var/www/test/releases /var/www/test/shared /var/www/test/shared/system /var/www/test/shared/log /var/www/test/shared/pids"
    servers: ["test"]
connection failed for: test (SocketError: getaddrinfo: Name or service not known)

Я немного повозился с ним.У Rails webrick нет проблем с запуском приложения rails, так что это должно быть связано с моим развертыванием в apache.Следует отметить, что имя приложения «app» (потому что test зарезервировано в rails) и доменное имя «test».

Это несоответствие может вызывать проблемы, но у меня мало опыта, поэтому яя не уверен.

Может кто-нибудь указать мне, где отлаживать или что это может быть?

1 Ответ

6 голосов
/ 12 марта 2012

Роль web, app и db должна быть URL-адресом или IP-адресом сервера, на который вы развертываете. Примерно так:

task :staging do
  set :rails_env, 'staging'
  role :app, "example.com"
  role :web, "example.com"
  role :db,  "example.com", :primary => true
end
...