2010-03-02 77 views
1

我有点在将符号链接添加到服务器上的应用程序中。我目前在的.gitignore如下:Apache2,Git,Capistrano&Rails - 创建符号链接

/非公开/系统/上传/ *

我基本上不想的Git存储上载目录的内容。到现在为止还挺好。

我的服务器上,我deploy.rb里面,我有以下几点:

namespace :customs do 
    task :symlink, :roles => :app do 
    run <<-CMD 
     ln -nfs #{shared_path}/system/uploads #{release_path}/non-public/system/uploads 
    CMD 
    end 
end 

after "deploy:symlink","customs:symlink" 
after "deploy", "deploy:cleanup" 

我要创建的每个部署的上传目录后一个符号,但我不断收到一个失败的错误消息,因为首先,git仓库中不存在非公共/ system/uploads目录。

我已经通过查看存储库验证了这一点,并且结构/非公开/系统/上传不存在,因为我已经在.gitignore中设置了它来忽略它。

我看过Git wiki,它没有跟踪目录,所以我必须缺少一些东西。其他开发人员如何将上传目录与他们的服务器进行符号链接?

+0

那么,现在我看到部署食谱与命令mkdir。这是我失踪的吗?在symlinking之前简单创建目录的命令? – Steve

回答

0

我通常会做我的帽子部署是创建目录,做一个基本的

set :deploy_to, "/this/dir" 

run "mkdir -p #{deploy_to}/then/more/dirs" 

after "deploy:symlink" 

namespace :deploy.... 
    .... 
    .... 

然后提供run代码做一些符号链接或者在一个after或什么的。这可能不是所有情况下的最佳选择,但对于简单的东西,它通常可以完成工作。

+0

非常感谢。我现在唯一的问题是,我认为我做了我的符号链接错误。我使用了下面的命令 - ln -nfs shared/system/uploads current/non-public/system/uploads - 不幸的是它在已经存在的上传目录中创建了一个uploads目录。 :( – Steve

+0

我摆弄部署更多一点,现在我理解符号链接以及它需要如何构建。感谢您的指导! – Steve