我的应用程序设置了Moonshine,用于配置服务器,然后使用Capistrano进行部署。但是,有些文件和目录不是源代码控制管理的,在进行新部署时不应该删除,也不应该从我的开发机器上删除。
在Moonshine的config / moonshine.yml文件中,有:app_symlinks区域,其中在生产时为共享文件夹创建符号链接。这适用于公用文件夹中的特定目录(如'system')...但是我需要对单个文件执行相同操作。例如,基于生产数据库自动生成的sitemap.xml文件。或.htaccess文件。
我尝试将单个文件放在下面:app_symlinks,但这不起作用。 Moonshine有没有办法将各个文件符号链接?或者,也可以在Capistrano中实现这一目标(就像Moonshine用于部署的那样)。
答案 0 :(得分:2)
您可以在deploy.rb
中执行以下操作:
desc "Link the file"
task :link_file do
run "ln -nfs #{deploy_to}/shared/files/myfile #{release_path}/myfile"
end
然后将此任务添加到:after "deploy", :link_file
当然,您需要手动创建/shared/files
目录,只需一次。