默认情况下,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 –