Capistranoを利用してデプロイを行う場合、デフォルトの設定では、デプロイ先のサーバからモジュールを取得するためにソースが管理されているリポジトリにアクセスする。
ただ、ソースを管理しているリポジトリは社内にあって、デプロイ先のサーバからは直接アクセスできな環境というのが結構多いと思う。
そうったケースの場合は、deploy.rbの設定を以下のように設定する必要がある。
# リポジトリのソースをCapistranoを実行するマシンに取得→圧縮→デプロイ→解凍→配置する。 set :deploy_via, :copy # ↑でリポジトリからソースを取得する際にエクスポートするように設定。(デフォルトはエクスポートではなく、チェックアウト) set :copy_strategy, :export # 圧縮ファイルのタイプを指定。(デフォルトは、tar.gz) set :copy_compression, :zip
ちなみに、Capistranoを実行するクライアントのOSがWindowsの場合、Capistranoのバージョンが2.5.8だと、SVNでアクセスする菜にリポジトリのパス表記の「/」が「\\」になって上手くいかない。
capistrano\recipes\deploy\strategy\base.rb
のsystemメソッドが原因だけど、これは2.5.10にバージョンアップしたら修正されてる。