LINUX.ORG.RU

cap deploy

 ,


0

1
require 'rvm/capistrano'
require 'bundler/capistrano'

set :application, "mysite"
set :rails_env, "production"
set :domain, "root@mysite"
set :deploy_to, "/srv/#{application}"
set :use_sudo, false
set :unicorn_conf, "#{deploy_to}/current/config/unicorn.rb"
set :unicorn_pid, "#{deploy_to}/shared/pids/unicorn.pid"
set :rvm_ruby_string, '1.9.3@rails3' 
set :rvm_type, :system

set :scm, :git
set :repository, "git@bitbucket.org:IAM/mysite.git"
set :branch, "master"

role :web, domain
role :app, domain
role :db,  domain, :primary => true 

before 'deploy:setup', 'rvm:install_rvm', 'rvm:install_ruby'

after 'deploy:update_code', :roles => :app do
  run "ln -s #{deploy_to}/shared/db #{current_release}/db/data"
  run "chown -R www-data:www-data #{deploy_to}"
  run "cd #{deploy_to}/current && rake assets:precompile"
end

Во время deploy rake assets:precompile выдаёт вот такую ошибку:

    [root@mysite] executing command
*** [err :: root@mysite] /usr/local/rvm/rubies/ruby-1.9.3-p194/bin/ruby /usr/local/rvm/gems/ruby-1.9.3-p194@global/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets
*** [err :: root@mysite] 

Если попробовать сделать rake assets:clean, выдаёт вот это:

* executing "cd /srv/mysite/current && rake assets:clean"
    servers: ["mysite"]
    [root@mysite] executing command
*** [err :: root@mysite] /usr/local/rvm/rubies/ruby-1.9.3-p194/bin/ruby /usr/local/rvm/gems/ruby-1.9.3-p194@global/bin/rake assets:clean:all RAILS_ENV=production RAILS_GROUPS=assets
*** [err :: root@mysite] 
*** [err :: root@mysite] rm -rf /srv/mysite/releases/20120924111656/public/assets
*** [err :: root@mysite] 
    command finished in 26518ms

Куда копать? Как получить подробности, из-за чего оно валится?

★★

Ответ на: комментарий от special-k

Без капистрано на хосте отрабатывает нормально.

Reaper ★★
() автор топика
Ответ на: комментарий от special-k

rails3 - этот gemset существует?

Да.

Reaper ★★
() автор топика
Ответ на: комментарий от Reaper

Поподробнее, плз.

да там все просто, у капистрано есть своя простая таска для precompile

добавляешь в Capfile

load 'deploy/assets'

и она сама вешает rake assets:precompile на какой-то из последних хуков.

это не объясняет твоей ошибки, но хотя бы может помочь запуститься.

kelyar ★★★★★
()

попробуй добавить

ssh_options[:verbose] = :debug
или
ssh_options[:debug] = :verbose
помоему первый вариант..

попробуй

run "cd #{deploy_to}/current && rake assets:precompile --trace"

special-k ★★★
()
Ответ на: комментарий от kelyar

load 'deploy/assets'

Слона-то я и не заметил. Работает. Решение полностью устраивает, всем спасибо.

run «cd #{deploy_to}/current && rake assets:precompile --trace»

Трейс печатает стек вызовов с *** [err :: root@mysite], информативность по-прежнему низкая, ну, т.е. куча вызовов, они вроде как отрабатывают все, но просто печатаются с этим *** err.

Я только сейчас заметил, что выплёвывая ошибку оно-таки отрабатывает команду. По какой поричине я решил, что оно требует починки уже не помню, но всё равно всем спасибо, благодаря ветке сделал нормально используя Capfile.

Reaper ★★
() автор топика
Последнее исправление: Reaper (всего исправлений: 1)

В Capfile должна быть раскоментирована строчка load 'deploy/assets':

load 'deploy'

# Uncomment if you are using Rails' asset pipeline load 'deploy/assets' load 'config/deploy' # remove this line to skip loading any of the default tasks

anonymous
()
11 декабря 2012 г.
Ответ на: комментарий от dmitry_malikov

/etc/init.d/ скрипты тоже от рута. В чём проблема рутового деплоя?

Reaper ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.