どのようにカピストラーノを展開生き残るcaches_pageのRailsを作るには?
-
18-09-2019 - |
質問
それはcaches_pageで作成したキャッシュはカピストラーノ展開生き残るためのRailsを設定することは可能ですか?つまり、私はキャッシュではなく、公共のディレクトリに比べて共有ディレクトリに保存されるように設定することができますか?
解決
受け入れ答えはOKですが、それは展開時にすべてのものをコピーしていない一般的に、より良いのですが、ちょうどキャッシュフォルダをシンボリックリンクます。
この方法は、あなたが共有/ディレクトリにフォルダを作成して、などの展開時に、それをシンボリックリンクすることができます:
namespace :deploy do
desc "Link cache folder to the new release"
task :link_cache_folder, :roles => :app, :on_error => :continue do
run "ln -s #{shared_path}/cache #{latest_release}/public/cache"
end
end
before "deploy:symlink", "deploy:link_cache_folder"
他のヒント
カピストラーノは本当に関連Railsのではない
、それだけで、一般的に展開するためのRailsコミュニティで使われています。だから、いいえ、あなたがやりたい「のRailsを設定」することはできません。あなたにできることは、シェルは、それが「現在」とシンボリックリンクされる前に、あなたの新しい展開にキャッシュをコピーするコマンドを実行し、あなたのCapfileにタスクを追加することです。
namespace :deploy do
desc "Copy cache to the new release"
task :cache_copy, :roles => :app, :on_error => :continue do
on_rollback {
run "rm -rf #{latest_release}/public/cache"
}
run "cp -a #{current_path}/public/cache #{latest_release}/public"
end
end
before "deploy:symlink", "deploy:cache_copy"
しかし、私は本当にあなたがキャッシュの可能性が高い、新しいコードの出力と同期しなくなりますので、キャッシュされたページのためにそのようなことをしたくないと思います。
私は、これは共有の下にシンボリックリンクパブリック/キャッシュディレクトリを持ってするのに十分であった見つけます:
set :shared_children, shared_children + ["public/cache"]
所属していません StackOverflow