2014-02-10 70 views
2

我設置了Capistrano的3新的環境,在分貝角色單獨的數據庫服務器。這是我使用的規範:部署源只應用服務器

set :stage, "preview" 
server 'my-web-server', roles: %w{app web} 
server 'my-db-server', roles: %{db} 

然而,試圖檢出我-DB服務器,我不想,甚至沒有安裝git的來源。考慮到deploy任務是內置的,我如何才能阻止Capistrano做到這一點?

我可以ROLES=app,web cap myenv deploy解決辦法,但我我怎樣才能讓它默認設置,以便我的團隊成員並不需要擔心嗎?

回答

0

默認情況下,Capistrano的使用remote策略來從Git的,這意味着服務器將盡量拉源代碼的來源。

我認爲,你想要的是一個local策略。在這種情況下,Capistrano可以從您的機器獲取源代碼,然後通過scp複製文件。

它是通過deploy_via屬性進行配置。右邊的數值是copy

http://bu.chsta.be/blog/2013-02-24/capistrano-deployment-strategies-deploy-via-a-copy/

+0

的問題不是在代碼中傳遞的方式,這是角色的部署目標。 'remote'策略對於'app'角色來說很好,但我想要的是根據'db'角色停止部署,因爲它不需要訪問我們的源代碼。 –

+0

好的。那麼,我們可以看到更多的conf文件嗎?如果我很好地閱讀文檔,我會使用角色命令而不是服務器命令。像:角色:DB%(重){我-DB服務器}(參見:https://medium.com/p/ba896a142ac) –

+0

我增加了配置的其餘部分的問題。不幸的是,使用'role'並沒有幫助 –