1

Linode VPSをnginx、passenger、ruby 1.9.3-p194、およびrails3.2.6で適切にセットアップしました。deploy:setupとdeploy:checkに合格するが、アセットのプリコンパイルフェーズで失敗する単純なキャップレシピ(以下を参照)を作成しました。リモートサーバーでプリコンパイルを手動で実行しようとしましたが、Capがロールバックするため、実行できません。

エラーはPGエラーのように見えますが、database.yml設定に基づいてサーバーへの接続を手動でテストしましたが、完全に機能します。これが何であるかについて何か考えはありますか?

deploy.rb
require "bundler/capistrano"

server "50.116.25.145", :web, :app, :db, primary: true

set :application, "exigencad"
set :user, "deploy"
set :deploy_to, "/home/#{user}/#{application}"
set :deploy_via, :remote_cache
set :use_sudo, false

set :scm, "git"
set :repository, "git@github.com:teknull/#{application}.git"
set :branch, "master"


default_run_options[:pty] = true
ssh_options[:forward_agent] = true

after "deploy", "deploy:cleanup" # keep only the last 5 releases

namespace :deploy do
  task :start do ; end
  task :stop do ; end
  task :restart, :roles => :app, :except => { :no_release => true } do
    run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
  end
end


task :after_update_code do  
run "ln -nfs #{deploy_to}/shared/config/database.yml #{release_path}/config/database.yml"
end

after :deploy, "assets:precompile"

Error from Capistrano:
executing `deploy:assets:precompile'
  * executing "cd /home/deploy/exigencad/releases/20120621170601 && bundle exec rake RAILS_ENV=production RAILS_GROUPS=assets assets:precompile"
    servers: ["50.116.25.145"]
    [50.116.25.145] executing command
 ** [out :: 50.116.25.145] rake aborted!
 ** [out :: 50.116.25.145] FATAL:  Peer authentication failed for user "exigen"
 ** [out :: 50.116.25.145] 
 ** [out :: 50.116.25.145] Tasks: TOP => environment
 ** [out :: 50.116.25.145] 
 ** [out :: 50.116.25.145] (See full trace by running task with --trace)
    command finished in 6433ms
*** [deploy:update_code] rolling back
4

2 に答える 2

2

あなたの問題とはまったく関係がないかもしれませんが、 cap deploy:migrate の実行中に同じエラーが発生したので、言及します。database.yml で本番データベースに host: localhost を設定しましたか? その行を追加すると、問題が解決しました。

于 2012-07-25T16:06:33.883 に答える
0

application.rbファイルに追加config.assets.initialize_on_precompile = falseしてみてください。

于 2013-10-24T14:54:31.640 に答える