1

I've always deployed my apps through SSH by manually logging in and running git pull origin master, running migrations and pre-compiling assets.

Now i started to get more interested in Capistrano so i gave it a try, i setup a recipe with the repository pointing to github and deploy_to to /home/myusername/apps/greatapp

サーバー上の現在のアプリも既に Git に接続されているため、レシピで github の URL を再度指定する必要がある理由がわかりませんでしたが、実行しcap deployて成功しました。

変更が適用されなかったので、好奇心からサーバー上の app フォルダーを参照したところ、Capistrano がフォルダーsharedreleasesおよび を作成したことがわかりましたcurrent。後者にはアプリが含まれていたので、今では に 1 つと に/home/myusername/apps/greatappもう1 つの 2 つのコピーがあり/home/myusername/apps/greatapp/currentます。

  1. これはどうあるべきですか?ユーザーのアップロードをcurrent古いアプリに移行して破棄する必要がありますか?

  2. Capistrano はローカルホストでレポを取得してから、SSH 経由でアップロードするpullか、サーバーで実行しますか? 言い換えれば、誰かが展開がどのように機能するかを概説できますか?

  3. カピストラーノは走っていprecompile:assetsますか?

4

2 に答える 2

0
  1. Capistrano は自動的にpublic/system(ユーザーがアップロードしたファイルを保存するための Rails 規則) を共有ディレクトリに配置し、必要なシンボリック リンクを設定します。
  2. github の URL を入力すると、実際には github リポジトリからフェッチされます。詳細については、 https://help.github.com/articles/deploying-with-capistranoを参照してください。
  3. デフォルトではそうです。
于 2012-11-03T05:22:49.157 に答える
0

/releases/ は、cap:rollback を実行する場合に備えて、以前のバージョン用です。/current/ あなたが正しく指摘したように、アプリの現在のバージョン用です。/shared/ は、デプロイ間で保持したいファイルとフォルダー用です。通常、これらはレシピの一部として /current/ フォルダーにシンボリック リンクされます。

Capistrano はシェルでサーバーに接続し、サーバー上で git コマンドを実行します。

于 2012-11-02T17:00:27.633 に答える