使用Capistrano是否安全?

时间:2009-08-17 11:01:47

标签: ruby-on-rails capistrano

我有一个已经部署的Gallery风格的应用程序。我的本地版本有许多照片,我只用于本地测试,我绝对不希望它们覆盖我在线的真实照片。

我还有一个git存储库,它只跟踪我的代码并忽略照片。

当我输入cap deploy时:迁移它是否使用我的git存储库?即Capistrano会用本地照片覆盖我的在线照片,还是会忽略它们,因为git会忽略它们?

2 个答案:

答案 0 :(得分:11)

只需将照片放入capistrano的共享文件夹并对其进行符号链接即可。要自动化它,请编写一个capistrano配方,如:

namespace :deploy do

  after "deploy:setup", "deploy:pictures:setup"
  after "deploy:symlink", "deploy:pictures:symlink"

  namespace :pictures do
    desc "Create the pictures dir in shared path."
    task :setup do
      run "cd #{shared_path}; mkdir pictures"
    end

    desc "Link pictures from shared to common."
    task :symlink do
      run "cd #{current_path}/public; rm -rf pictures; ln -s #{shared_path}/pictures ."
    end

  end
end

此配方将在“cap deploy:setup”上的capistranos共享文件夹中创建一个图片文件夹,并在每个“cap deploy”上对其进行符号链接。

因此,如果您已经在服务器上创建了图片文件夹并添加了一些图片,则可以在运行命令之前将其迁移:

cd yourapp
mv current/public/pictures shared
ln -s shared/pictures current/public/pictures

我使用另一个配方来同步多台计算机上共享文件夹的内容,您可以从GitHub

获取它

答案 1 :(得分:1)

部署时,capistrano将从您选择的版本控制系统中签出一份新的副本。它不关心您的本地文件。