病みつきエンジニアブログ

機械学習、Python、Scala、JavaScript、などなど

Capistrano でRailsアプリを自動deploy

導入や紹介は、このslideshareが非常によくまとまってると思います。

導入などはhttp://d.hatena.ne.jp/ntaku/20111115/1321358900などにあります。
だいたい設定が必要になるのは config/deploy.rb 内のapplication, repository, scm, branch, deploy_via, deploy_to とサーバー名あたりです。Passenger 使ってるなら同ファイルの最後のコメントから、コメントを取り除いてあげると自動でサーバー再起動します。

で、起こった問題点など。

・リモート時でファイルのコピーが失敗してた
ディレクトリ作ってあげると良いです。
releases や shared などのディレクトリをCapistranoが使うので、
リモートの対象フォルダに移動して

cd /path/to/www
mkdir shared
mkdir releases

などとしてあげると、解消するかも知れませぬ。

・そもそもgit push は自力でやれ
git push origin master自動でしてくれると思ってました・・・
push -> deploy が面倒くさいなーと言う場合は、
.bashrc や.zshrc などに

  alias pushcap="git push origin master && cap "

みたいにaliasを定義してあげればいいんじゃないですかねー(この場合はpushcap deploy でdeploy できる)

・publicディレクトリの確認
httpd.confなどに /path/to/file/public を指定していた場合は、
/path/to/file/current/public に指定しなおしましょう。