2010-03-02 80 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