Проблема с каталогом установки Capistrano

Я делаю свое первое развертывание Rails и использую capistrano, следуя указаниям моего хоста:

У меня есть домен plantality.com.

Я создал папку gws для своего приложения.

Я установил с помощью capistrano и следовал всем инструкциям вики, которые смог найти.

public_html указывает на gws/public, но capistano установил мое приложение на gws/current

Я дважды проверил, что мои пути deploy.rb верны.

Я создал символическую ссылку между gws/public и public_html (я пробовал между gws/current/public и public_html, но это не помогло.

Я пытаюсь использовать Passenger, если это имеет значение.

Вот мой файл deploy.rb:

set :user, 'plantali'
set :scm_username, 'solent'
set :scm_password, '<removed>'
set :svnserver, 'plantality.sourcerepo.com'
set :application, "gws"
set :repository, "http://#{svnserver}/plantality/gws/gws"
set :server, 'plantality.com'
set :applicationdir, 'gws'
set :use_sudo, false
set :keep_releases, 5
set :scm, :subversion

role :web, "plantality.com" # Your HTTP server, Apache/etc
role :app, "plantality.com" # This may be the same as your `Web` server
role :db, "plantality.com", :primary => true # This is where Rails migrations will run
#role :db, ""

set :deploy_to, "/home/#{user}/#{applicationdir}"
set :group_writeable, false

person Mike Sutton    schedule 09.02.2010    source источник
comment
Обратите внимание, что вам не нужна директива :applicationdir в приведенном выше примере. Соглашение Capistrano состоит в том, чтобы просто использовать :application, потому что предполагается, что имя каталога приложения будет таким же, как имя приложения.   -  person John Topley    schedule 09.02.2010


Ответы (1)


Capistrano размещает выпуски в каталогах с отметками времени в каталоге releases и создает символическую ссылку с именем current, которая указывает на корень приложения Rails в каталоге последнего выпуска.†

Следовательно, корень Rails вашего приложения — /home/<user>/gws/current/, и Passenger необходимо настроить для обслуживания приложения оттуда соответствующим образом. Установите Apache DocumentRoot на виртуальном хосте, который использует Passenger, на /home/<user>/gws/current/public и перезапустите Passenger.

† Между прочим, именно так Capistrano может легко откатить плохой выпуск: он просто воссоздает символическую ссылку, указывающую на предыдущий выпуск с отметкой времени.

person John Topley    schedule 09.02.2010
comment
Я пытаюсь понять, как это сделать с марионеткой, а затем с капистрано. Я хочу, чтобы puppet настроил виртуальный хост так, чтобы он указывал на ..../current/public , но этого не существует до тех пор, пока не будет развернута крышка, что дает марионетке соответствие. есть идеи? - person jrochkind; 26.03.2012