2012-06-06 3 views
1

Я пытаюсь развернуть с помощью capistrano, но когда я делаю закрытие развертывания: обновляйте его, не создавая/текущую папку, вот ошибка, любые идеи?capistrano error: ...../current: Нет такого файла или каталога

executing "cd /home/adamtodd/apps/homebase/current && bundle exec rake RAILS_ENV=production RAILS_GROUPS=assets assets:precompile --trace" 
servers: ["xx.xxx.xx.xxx"] 
[xx.xxx.xx.xxx] executing command 
** [out :: xx.xxx.xx.xxx] bash: line 0: cd: /home/adamtodd/apps/homebase/current: No such file or directory 

ответ

1

cap deploy:update обычно работают только для приложений, которые уже были развернуты один раз, который я предполагаю, что не произошло в вашем случае, так как у вас нет каталога current.

Попробуйте вместо этого сделать cap deploy:cold.

+1

У меня такая же проблема, и 'deploy: cold' не исправил ее для меня. Похоже, здесь есть открытая проблема: https://github.com/capistrano/capistrano/issues/224 –

1

Похоже, вы пересмотрели развёртывание: активы: прекомпиляция задачи, так как в исходном коде Capistrano вы можете увидеть, он пытается кд в releases/12345, не current:

https://github.com/capistrano/capistrano/blob/master/lib/capistrano/recipes/deploy/assets.rb#L31-43

Так что я бы проверьте ваш deploy.rb и удалите переопределенную задачу.

(Я тоже так переопределил задачу, даже добавив --trace, как и вы, но любая проблема, которую я пыталась решить, уже не проблема, и задача из коробки отлично работает для меня. Если бы я должен был догадаться, я бы сказал, что наша пользовательская задача была взломать, чтобы получить RAILS_GROUPS=assets в командную строку, но Capistrano обрабатывает это автоматически сейчас, так как вы можете проверить, если вы проверили связанный исходный код.)

9

Я была такая же проблема, когда я использовал решение Бен Кертиса для прекомпиляции активов (assets:precompile task redifinition) на первое время развертывания (развернуть: холод не помог мне)

Простых обходной here

namespace :deploy do 
    namespace :assets do 
    task :precompile, :roles => :web, :except => { :no_release => true } do 
     begin 
     from = source.next_revision(current_revision) # <-- Fail here at first-time deploy because of current/REVISION absence 
     rescue 
     err_no = true 
     end 
     if err_no || capture("cd #{latest_release} && #{source.local.log(from)} vendor/assets/ app/assets/ | wc -l").to_i > 0 
     run %Q{cd #{latest_release} && #{rake} RAILS_ENV=#{rails_env} #{asset_env} assets:precompile} 
     else 
     logger.info "Skipping asset pre-compilation because there were no asset changes" 
     end 
    end 
    end 
end 
Смежные вопросы