1

Capistrano を使用して Rails アプリケーションをデプロイしようとしています。

私の deploy.rb ファイルは次のようになります。

require "bundler/capistrano"

server "xx.xx.xxx.xxx", :web, :db, :primary => true

set :application,       "myApp"
set :user,              "ubuntu"
set :deploy_to,         "/home/#{user}/apps/#{application}"
#set :deploy_via,       :remote_cache
set :migrate_target,    :current
set :keep_releases,     3

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

default_run_options[:pty] = true

# default_run_options[:shell] = '/bin/bash'

ssh_options[:forward_agent] = true
ssh_options[:keys] = ["#{ENV['HOME']}/.ec2/keypair.pem"]

今私がやろうとするときはいつでも

cap deploy:cold

次のようなエラーが表示されます。

https://gist.github.com/c54933142b900f9f93b9

助けていただければ幸いです。

4

1 に答える 1

2

私が認識していない唯一のことはset :migrate_target :current-これはおそらくデフォルトまたは暗黙であるため、心配する必要はありませんが、要点からの根本的なエラーは

 ** [out :: xx.xx.xxx.xxx] rm:
 ** [out :: xx.xx.xxx.xxx] cannot remove `/home/ubuntu/apps/myApp/current'
 ** [out :: xx.xx.xxx.xxx] : Is a directory

currentディレクトリではなくシンボリックリンクである必要があるため、どのようにしてディレクトリになったのかを知るのは困難です。

サーバーにログインし、に変更し/home/ubuntu/apps/myApp/ますrm -rf current。そこから、予想されるシンボリックリンクを手動で作成するか(現在は日付/時刻の名前のディレクトリにリンクします)、またはローカルマシンの実行から戻ってcap deploy:create_symlink、通常のデプロイを試すことができます。

capistranoの初期化は、強力なスーツではないと言っても過言ではありません。いったんうまくいくと、それまでは途方もなく素晴らしい傾向があり、それまではもっと腹立たしいほど鈍感です。

于 2012-11-08T23:55:10.557 に答える