0

カピストラーノを使用してレールアプリを ec2 サーバーにデプロイしていますが、デプロイには約 10 分かかり、95% の確率でほぼ 9 分の 1 ステップで停止し、理由がわかりません...

ここにログがあります

  * executing `deploy'
  * executing `deploy:update'
 ** transaction: start
  * executing `deploy:update_code'
    executing locally: "git ls-remote . HEAD"
    command finished in 6ms
  * getting (via checkout) revision 3100b6f25e4551fadaa64c11852e3839ff1eafc1 to /var/folders/nt/pr84tk8s1pqbj97l4mjz9gsm0000gn/T/20120801082840
    executing locally: git clone -q . /var/folders/nt/pr84tk8s1pqbj97l4mjz9gsm0000gn/T/20120801082840 && cd /var/folders/nt/pr84tk8s1pqbj97l4mjz9gsm0000gn/T/20120801082840 && git checkout -q -b deploy 3100b6f25e4551fadaa64c11852e3839ff1eafc1
    command finished in 18422ms
  * Compressing /var/folders/nt/pr84tk8s1pqbj97l4mjz9gsm0000gn/T/20120801082840 to /var/folders/nt/pr84tk8s1pqbj97l4mjz9gsm0000gn/T/20120801082840.tar.gz
    executing locally: tar czf 20120801082840.tar.gz 20120801082840
    command finished in 2662ms
    servers: ["50.112.250.177"]
 ** sftp upload /var/folders/nt/pr84tk8s1pqbj97l4mjz9gsm0000gn/T/20120801082840.tar.gz -> /tmp/20120801082840.tar.gz
    [50.112.250.177] /tmp/20120801082840.tar.gz

最後の行でわかるように、この .tar.gz を実行するには時間がかかりすぎます... gzip 圧縮だと思いますが、なぜ時間がかかりすぎるのですか?

別の新しいプロジェクトでは、デプロイにほぼ 1 分以下かかります...このプロジェクトにはいくつかのコントローラーしかなく、それほど遅くはないはずです...

* Mac 上で ubuntu にデプロイ

4

1 に答える 1

2

10 分間の展開は、間違いなく最適化できるものです。通信速度が遅いと思います。

改善の 1 つは、別の展開戦略を使用することです。アプリ サーバー (GitHub、プライベート リポジトリなど) からリポジトリにアクセスできる場合は、リモート キャッシュ経由でデプロイできます。に次の設定を追加します。config/deploy.rb

set :deploy_via, :remote_cache

リポジトリをローカルでチェックアウトして圧縮し、sftp 経由で送信する代わりに、capistrano はアプリ サーバーでリポジトリを直接チェックアウトし、その後変更のみをプルします。

プライベート リポジトリを使用している場合は、展開 ssh キーのセットアップを使用する必要があります。

詳細については、GitHub の capistrano ページ(GitHub に関連するだけではありません) を参照してください。

于 2012-08-07T07:21:39.693 に答える