ハードリセットせずにカピストラーノを使用してGitリポジトリから展開しますか?

StackOverflow https://stackoverflow.com/questions/852118

  •  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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top