Ruby on rails 缺少当前文件夹Capistrano Rails 3.2

Ruby on rails 缺少当前文件夹Capistrano Rails 3.2,ruby-on-rails,ruby-on-rails-3.2,capistrano,rvm-capistrano,Ruby On Rails,Ruby On Rails 3.2,Capistrano,Rvm Capistrano,我需要理解为什么capistrano不创建当前文件夹。我正在使用以下命令: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 ass

我需要理解为什么capistrano不创建当前文件夹。我正在使用以下命令: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'
我不明白哪里出错了,有人能帮我吗?
感谢您

Capistrano创建当前符号链接(而非目录)作为其部署周期的最后一步,通常在应用程序服务器收到启动/重启命令之前。它无法在部署之前创建该符号链接,因为没有要进行符号链接的对象(在
/releases
中没有签出)


如果它仍然没有创建符号链接,请检查capistrano部署日志中的错误,如果它在到达该点之前出现错误,它将不会创建符号链接。如果有错误,请将其发布到您的问题中。

由于文件夹权限的原因,它也可能失败。 如果选择

set :use_sudo, false
第一次部署cap时不存在,当前文件夹的所有者为sudo。更改用户时,该用户可能没有足够的权限更新链接。 我删除了符号链接并运行

cap deploy:create_symlink

这为我更新了符号链接。

Capistrano应该在您的应用程序部署路径“releases”、“shared”和“current”(这是指向releases/xxxx的符号链接)下创建这些目录。我记不起来了,但它可能在首次部署之前无法创建,您的应用程序似乎已配置为部署到“/var/www/app/app”-检查情况是否属实,并再次检查部署用户是否拥有目录我只需在我的capfile中注释load deploy:assets,现在capistrano会创建当前的符号链接。我从来没有执行过这些任务
设置
创建\u符号链接
,等等--您从哪里获得它们?!你可以在这里找到它: