Rails + Nginx + Unicorn という構成でデプロイ作業を自動化しようと思い、ようやく Capistrano を導入しました。
しかし、Capistranoで、$cap production deploy
コマンドを実行し、特にエラーが発生せずに実行完了するにもかかわらず、current
に最新のコミットが反映されないという現象でハマったのでメモ。
不要なGit系のファイルの削除
結論から言うと、不要なGit系のファイルを削除することにより、最新のコミットが反映されるようになった。
Capistranoを導入以前は、/home/user_name/apps/each_app
のように each_app
ディレクトリに Rails アプリのファイルを置いていた。
このディレクトリは Git の管理下にあったのですが、そこでこのディレクトリ配下にある、.git
や Capistrano が作成する repo
ディレクトリを削除するとこの現象は解決。
(以前は each_app
の中から $git pull
とかしていた…)
Capistranoを導入して、Nginxのrootを /home/user_name/apps/each_app/current
に変更して、わちゃわちゃしていたら無駄にハマってしまった。もっと Git の仕組みとかもしっかりと抑えたい。