Develop with pleasure!

福岡でCloudとかBlockchainとか。

Capistranoでローカルリポジトリからソースを取得する。

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にバージョンアップしたら修正されてる。