【发布时间】:2011-08-17 17:03:16
【问题描述】:
我想部署我的 symfony 应用程序的一部分,比如说,它就像一个模块。
我想先排除所有文件,然后只包含 我的新模块。
对于部署,我使用以下 symfony 任务
php symfony project:deploy production -t
参数 -t 将包含在此 rsync 试运行中的所有文件打印到输出。
config/rsync_exclude.txt 的内容只有 *,因为我喜欢排除一切:
*
在 config/rsync_include.txt 我列出了所有包含的文件和文件夹:
config/
config/mysupermodule.yml
lib/model/doctrine/
lib/model/doctrine/MySuperclass.php
lib/model/doctrine/MySuperclassTable.php
lib/
lib/MySuperLibrary/
lib/MySuperLibrary/*
symfony 任务构建以下 rsync 命令:
rsync --dry-run -azC --force --delete --progress --exclude-from=config/rsync_exclude.txt --include-from=config/rsync_include.txt -e "ssh -p22" ./ user@www.server.com:/test_deployment/
问题一:任务没有同步任何文件。
解决方案 1:更改顺序:先包含,然后排除。
我发现,如果我改变我的需求:
我想包含我的新模块的所有文件,然后排除所有 其他。
这意味着使用以下命令:
rsync --dry-run -azC --force --delete --progress --include-from=config/rsync_include.txt --exclude-from=config/rsync_exclude.txt -e "ssh -p22" ./ user@www.server.com:/test_deployment/
rsync 有效。
问题2:使用symfony任务时如何改变rsync的顺序? symfony 任务首先排除而不是包含。
解决方案 2:?
【问题讨论】:
标签: deployment symfony1 task rsync