通过生产服务器上的Moonshine和/或Capistrano生成符号链接单个文件

时间:2011-05-12 16:36:26

标签: ruby-on-rails ruby capistrano symlink

我的应用程序设置了Moonshine,用于配置服务器,然后使用Capistrano进行部署。但是,有些文件和目录不是源代码控制管理的,在进行新部署时不应该删除,也不应该从我的开发机器上删除。

在Moonshine的config / moonshine.yml文件中,有:app_symlinks区域,其中在生产时为共享文件夹创建符号链接。这适用于公用文件夹中的特定目录(如'system')...但是我需要对单个文件执行相同操作。例如,基于生产数据库自动生成的sitemap.xml文件。或.htaccess文件。

我尝试将单个文件放在下面:app_symlinks,但这不起作用。 Moonshine有没有办法将各个文件符号链接?或者,也可以在Capistrano中实现这一目标(就像Moonshine用于部署的那样)。

1 个答案:

答案 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目录,只需一次。