2

カピストラーノが現在のフォルダーを作成しない理由を理解する必要があります。次のコマンドを使用しています:cap deploy:setup、cap deploy:check、cap deploy

しかし、アプリディレクトリをチェックインすると、現在のフォルダーがありません。

これは私の deploy.rb

# Execute "bundle install" after deploy, but only when really needed
require 'bundler/capistrano'

# Automatically precompile assets
load "deploy/assets"

# RVM integration
require "rvm/capistrano"

# Application name
set :application, "app"

# Application environment
set :rails_env, :production

# Deploy username and sudo username
set :user, "ubuntu"
default_run_options[:pty] = true
ssh_options[:forward_agent] = true


#We don't want to use sudo (root) - for security reasons

set :use_sudo, false

#Target ruby version

set :rvm_ruby_string, '1.9.3-p374'

#System-wide RVM installation

set :rvm_type, :user

#We use sudo (root) for system-wide RVM installation

set :rvm_install_with_sudo, true

#git is our SCM

set :scm, :git

#Use github repository
set :repository, "git@github.com:.../CM.git"

#master is our default git branch

set :branch, "master"

#Deploy via github

set :deploy_to, "/var/www/app/#{application}"
set :deploy_via, :remote_cache

#We have all components of the app on the same server
server "125.156.125.125", :app, :web, :db, :primary => true

namespace :deploy do
 task :restart, :roles => :app, :except => { :no_release => true } do
  run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
 end
 task :symlink_shared do
  run "ln -nfs #{shared_path}/config/database.yml #{release_path}/config/database.yml"
  run "ln -nfs #{shared_path}/assets #{release_path}/public/assets"
 end
 task :assets do
     system "rsync -vr --exclude='.DS_Store' public/assets #{user}@#{application}:#      {shared_path}/"
 end
end
after 'deploy:update_code', 'deploy:symlink_shared'

エラーの場所がわかりません。誰か助けてもらえますか? ありがとうございます

4

2 に答える 2

6

フォルダーのアクセス許可が原因で失敗することもあります。オプションの場合

set :use_sudo, false

キャップが初めて展開されたときに存在しませんでした。現在のフォルダーには所有者として sudo があります。ユーザーが変更された場合、リンクを更新するための十分な権限がない可能性があります。シンボリックリンクを削除して実行しました

cap deploy:create_symlink

これにより、シンボリックリンクが更新されました。

于 2013-07-22T16:45:29.937 に答える
3

Capistrano は、デプロイメント サイクルの最後のステップの 1 つとして、現在のシンボリック リンク (ディレクトリではない) を作成します。通常、アプリケーション サーバーに開始/再起動コマンドが送信される直前です。シンボリックリンクするものが何もないため (にチェックアウトがないため)、展開する前にそのシンボリックリンクを作成できません/releases

それでもシンボリック リンクが作成されない場合は、カピストラーノ デプロイ ログでエラーを確認してください。その時点までにエラーがある場合、シンボリック リンクは作成されません。エラーがある場合は、質問に投稿してください。

于 2013-02-19T22:20:21.457 に答える