10

なんらかの理由で、Capistranoはほぼすべての操作で失敗しています。これは、私がにいるcurrent_pathはずだと考えているため/u/apps/です。(AFAIK)が設定する必要のあるすべての変数を設定し、他のすべての同様のデフォルトパスを削除しましたが、これは存続します。

関連する変数によって返される値は次のとおりです。

current_dir: current
releases_path: /var/www/vhosts/dev.www.example.com/html/releases
shared_path: /var/www/vhosts/dev.www.example.com/html/shared
current_path: /u/apps/www.example.com/current

私は設定しているので、それに基づいて計算する:deploy_toべきではありません!?current_path

set :deploy_to, "/var/www/vhosts/dev.www.example.com/"
4

3 に答える 3

6

ちょっとした解決策は、手動で行うことです

set :current_path, ""

Jamis Buck自身がこの電子メールスレッドで説明しているより良い解決策は、に依存する別の変数を設定するときに遅延評価を使用することですcurrent_path。私の場合、このような設定がありました

set :some_path_var, "#{current_path}/some/path/"

私はこのようなものに変更しなければならなかったこと:

set(:some_path_var) { "#{current_path}/some/path/" }

ブロックを渡すことにより、:some_path_varはすぐには評価されずcurrent_path、デフォルト値に基づいて評価されることを強制されませんでした。:deploy_to

于 2012-09-10T18:26:13.270 に答える
2

だから私もこの問題を抱えていて、これが最善の解決策であることがわかりました。

これをあなたに追加してくださいconfig/deploy.rb

  desc "Make sure the symlink will be from the right directory"
  task :change_correct_dir, roles: :web do
    set :current_path, File.join(deploy_to, current_dir)
  end
  before "deploy:create_symlink", "deploy:change_correct_dir"

カピストラーノの宝石の出所を見て、見つけてアイデアを得ました

_cset(:current_path) { File.join(deploy_to, current_dir)

lib/capistrano/recipes/deploy.rb

于 2013-01-25T02:45:04.023 に答える
1

これは、capコマンドでタスクを指定しない場合にも発生する可能性があります。

cap deploy:setup

/ u/appsにCapistranoを設定しようとします

cap production deploy:setup

:deploy_toで指定されたディレクトリにCapistranoをセットアップします。

于 2013-05-20T15:44:35.137 に答える