Apache2,Git,Capistrano& Rails - 创建符号链接

时间:2010-03-02 19:41:53

标签: ruby-on-rails git capistrano

我很难在服务器上添加符号链接到我的应用程序。我目前在.gitignore中有以下内容:

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

我基本上不希望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存储库中不存在非public / system / uploads目录。

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

我查看了Git wiki并且它没有跟踪目录,所以我必须遗漏一些东西。其他开发人员如何将uploads目录与他们的服务器进行符号链接?

1 个答案:

答案 0 :(得分:0)

我通常在我的帽子部署上做的是通过做一个基本的

来创建目录
set :deploy_to, "/this/dir"

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

after "deploy:symlink"

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

然后提供run代码在after或其他任何内容上执行一些符号链接。这可能不是所有情况下的最佳选择,但对于简单的东西,它通常可以完成工作。