默認情況下,Capistrano的deploy
任務會將shared/log
,shared/system
和shared/pids
目錄中的符號鏈接創建到版本目錄中。我怎樣才能防止這一點?如何防止Capistrano在部署中的`shared`目錄中生成符號鏈接?
3
A
回答
7
如果你看一下source code在52行部署的配方,你可以看到:
=========================================================================
These variables should NOT be changed unless you are very confident in
what you are doing. Make sure you understand all the implications of your
changes if you do decide to muck with these!
=========================================================================
...
_cset :shared_children, %w(system log pids)
...
這是共享文件夾是如何定義的。我想你可以將下面的行添加到您的Capistrano的食譜,以防止這些目錄被符號鏈接:
set :shared_children, %w()
更新: 對於下面的評論:隨着Capistrano的邊緣版本,現在應該工作。請參閱this pull request以減少符號鏈接的硬編碼。
-1
這是不可能避免這些符號鏈接;它是通過一些非常粗略的(!)硬編碼完成的
deploy.rb
可能已經修復在capistrano 2.10;見How to prevent Capistrano generating symlinks in the `shared` directory on deployment?。
相關問題
- 1. 部署:capistrano上的符號鏈接將「當前」目錄指向先前版本
- 2. 如何防止emacs解析路徑中的目錄符號鏈接?
- 3. 從符號鏈接中防止IO.GetDirectories()
- 4. 用Capistrano部署的問題(符號鏈接錯誤)
- 5. 如何在Capistrano部署中生成我的產品圖像?
- 6. 部署前運行任務:符號鏈接:共享capistrano 3
- 7. Capistrano - 預覽部署和手動更新符號鏈接
- 8. Capistrano部署。創建符號鏈接:協議錯誤
- 9. 如何防止Capistrano在部署時顯示密碼
- 10. 防止capistrano在部署中運行遷移
- 11. Capistrano 3符號鏈接
- 12. 查找目錄中的符號鏈接
- 13. 如何使用Capistrano 3部署而不是符號鏈接/重新啓動?
- 14. 如何防止從靜態鏈接庫中導出符號?
- 15. Capistrano的部署錯誤的目錄
- 16. 正在緩存的Capistrano符號鏈接?
- 17. capistrano部署後的tomcat刷新目錄
- 18. Capistrano Multistage部署到錯誤的目錄
- 19. 在應用程序部署與capistrano期間的符號鏈接警告
- 20. Capistrano的部署錯誤帽中止
- 21. 如何將目錄符號鏈接複製爲目標鏈接?
- 22. Html.RouteLink在部署到Azure後停止生成鏈接
- 23. 從符號鏈接目錄
- 24. 符號鏈接目錄
- 25. 如何在使用capistrano部署Node.js項目時成功通知Airbrake的部署?
- 26. 如何在www目錄中創建符號鏈接?
- 27. Capistrano部署更改遷移目錄
- 28. 如何使用capistrano在項目中部署自定義子目錄?
- 29. 如何獲取當前符號鏈接目錄的父目錄?
- 30. 如何獲取符號鏈接文件,看非符號鏈接的目錄
按照您的提示,我檢查了源代碼,似乎儘管':shared_children'允許您更改創建的目錄,但實際的符號鏈接位由一些粗硬編碼完成:https://github.com /capistrano/capistrano/blob/2fd9180125daa4e8dda299bb90e946f2405900e9/lib/capistrano/recipes/deploy.rb#L246 – mjs
好抓!教我,我應該在提交之前測試我的建議。我想你可以重寫'finalize_update'任務以防止符號鏈接這些目錄,但它看起來不是正確的方式。 – HectorMalot
請注意,此拉取請求已將其轉換爲版本2.10(且不在2.9版中) 您可能需要更新您的Capistrano: bundle update capistrano –