ハードリセットせずにカピストラーノを使用してGitリポジトリから展開しますか?
-
21-08-2019 - |
質問
私たちはサイト内のCMSを実行している現時点では問題をしました ユーザーのアップロードファイルをすることができます(browsercms)。しかし、すべての時間I カピストラーノは、このように任意のアップロードさをニューキングハードリセットを実行しますデプロイを行います ファイルます。
は、誰もが、ハードリセットが発生しないようにする方法についてどのような提案を持っています ちょうど、プル、または他の場所でアップロードされたファイルを移動する方法を行います アプリケーションのコードを変更することなく?
解決
これは正しいアプローチではないかもしれません。
あなたの.gitignoreであなたの '画像' フォルダを含めると$共有/画像に$のcurrent_release / imagesフォルダをシンボリックリンクする必要があります。
あなたはdeploy.rbに入れる場合は、これは、すべての展開で自動的に行うことができます:
task :link_imgs do
run "ln -s #{shared_path}/photos #{release_path}/photos"
end
after "deploy:update_code", :link_imgs
私は私のCMSと同じことをやったし、それは魔法のように動作します。
他のヒント
これはかなり「アプリケーション・コードを変更することなく、」あなたの基準を満たしていません。
は、しかし、同様の問題に実行した後、私はイメージが生き残るよう/public/images
ディレクトリが各Capistranoの展開により、「バージョン管理」ではありません/public/system/images
する/public/system
からアップロードした画像をシフトします。
それが(代わりにgitのリセットの)の問題を引き起こしてカピストラーノ 'バージョン管理' のだろうの
のキャップ配備の呼び出しはを展開します。update とデプロイ:再起動の
は展開:更新の作るバージョン管理、ものをコピーする
の展開:再起動のは、真の再起動を行い、通常はファイル
の設定/ deploy.rbあなたので、あなたのconveninceでそれをオーバーロードnamespace :deploy do
desc "Softly restart the server"
task :restart, :roles => :app, :except => { :no_release => true } do
my_own.restart_recipe
end
end