我需要理解为什么capistrano不会创建当前的文件夹。我正在使用以下命令:cap deploy:setup,cap deploy:check,cap deploy
但是当我在我的app目录中检查时,我不是当前的文件夹。
这是我的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'
我不明白错误在哪里,如果有人可以帮助我? 谢谢你
答案 0 :(得分:6)
由于文件夹权限也可能失败。 如果选项
set :use_sudo, false
部署第一次上限时不存在,当前文件夹以sudo作为所有者。更改用户后,可能没有足够的权限来更新链接。 我删除了符号链接并运行了
cap deploy:create_symlink
这为我更新了符号链接。
答案 1 :(得分:3)
Capistrano创建一个当前的符号链接(而不是目录)作为其部署周期的最后一步,通常在应用程序服务器发送启动/重新启动命令之前。它在部署之前无法创建该符号链接,因为没有符号链接到(/releases
中没有签出)。
如果仍然没有创建符号链接,请检查capistrano部署日志以查找错误,如果符号链接在进入该点之前有错误,则不会创建符号链接。如果有错误,请在您的问题中发布。