Quantcast
Channel: capistrano - There's an echo in my head
Browsing all 15 articles
Browse latest View live

capistranoでゴニョゴニョしたのでメモ

capistranoのレシピ 同じnamespace内のタスクなら、タスク名を書けばそれがそのまま呼べるtask :foo do; bar; end別のnamespaceなら<namespace>.<task>という感じで、ドットで繋げればOK...

View Article


capistrano-rbenvを使ってみてのメモ

capistrano-rbenvを使うとcapistranoでrbenvを扱うことができる。3系には今のところ対応していない(capistranoの3系ってどこに出てるんだろう?)。Vagrant/Ched-soloで環境を作っていて2点ほどメモ。multistage環境でcapistrano-rbenvを使うときにrbenv_pathの扱いに注意しなくてもよくなってたcapistrano-rben...

View Article


capistrano_database_ymlでデプロイ時にdatabase.ymlを生成する

capistrano_database_ymlを使うと、デプロイ時にテンプレートからdatabase.ymlを生成することができる。このときcapistrano側からパラメータを与えられるので、multistageと組み合わせると「本番サーバとステージングサーバで同じproduction環境を使いながらDBの接続先が異なる」ということができる。*1.gitignore:config/database...

View Article

capistranoでassetsに更新がない場合にprecompileを行わない

サーバ間に差異があると意図どおりに動かない可能性があるのでおすすめできない(追記2参照)capistranoのでデプロイをするとdeploy:assets:precompileを走らせてassetsのコンパイルをしてくれるけど、毎回assetsに変更があるわけではない。なので変更がない場合にはprecompileを行わないように手を加える。config/deploy/assets.rb:namesp...

View Article

Capistranoでunicornを扱うときはBUNDLE_GEMFILEをリセットする

Capistranoでunicornを使ったアプリをデプロイしているとBundler::GemfileNotFoundという例外があがることがあるらしい*1どうやらBUNDLE_GEMFILEがreleasesのある時点でのGemfileのパスを保持したままデプロイを重ねて、そのファイルがtruncateで削除されてたのが原因とのこと。自分のところではまだ再現していないけど、次のコードをunicor...

View Article


Capistrano2でsharedにシンボリックリンクするディレクトリを追加する

Capistranoではリリース間でファイルを共有するためにいくつかのディレクトリがshared/以下にコピーされ、そちらにシンボリックリンクをはるようになっている。たとえばpublic/assetsとかlogとか。この仕組は任意のディレクトリに対しても使うことができる。# config/deploy.rb set :shared_children, shared_children +...

View Article

delayed_job + Rails4 + Capistrano + rbenv

Rails 4(ActiveRecord)でdelayed_jobを使いつつ、それをCapistranoでデプロイする方法のメモ。基本的に本家のWikiに従う。キューの機能を使うまず必要なgemをインストールしてマイグレーションファイルと実行ファイルを作成する。# Gemfile gem "delayed_job" gem "delayed_job_active_record" gem...

View Article

Capistranoでデプロイ対象のEC2インスタンスをタグで指定するものを書いている

capistrano-ec2_taggedというgemを作った。まだrubygems.orgには上げていない。これはCapistranoで指定タグのEC2インスタンスにデプロイのようなことをやるためのもので、次のようにして使う:# Gemfile gem "capistrano-ec2_tagged", require: false, github:...

View Article


capistrano-ec2_taggedというgemのv0.1.0をリリースした

以前Capistranoでデプロイ対象のEC2インスタンスをタグで指定するものを書いているという記事で紹介した、capistrano-ec2_taggedというgemをリリースした。capistrano-ec2_tagged (0.1.0): http://t.co/Bn9FSwBrgb Get ip addresses of AWS EC2 instances filtered by their...

View Article


capistrano-pendingというgemを作った

http://rubygems.org/gems/capistrano-pendingCapistrano...

View Article

capistrano-bundlerでデプロイしたときにbinstubがどうこうという警告が出る件の対応

bundlerでbinstubしたrailsコマンドやrakeコマンドを使っていると、次のような警告がbin/rails cしたときなどに表示される:Looks like your app's ./bin/rails is a stub that was generated by Bundler. In Rails 4, your app's bin/ directory contains...

View Article

Image may be NSFW.
Clik here to view.

Capistrano3のタスクの中からエラーを投げる

capistrano-pending gemでREVISIONファイルが無いときにエラーで終わらせたくてCapistranoのコードを読んでみたら、次のようにしてた:if test "[ -f #{current_path}/REVISION ]"# ファイルが存在した場合の処理else error "REVISION file doesn't exist"exit1endAbort when...

View Article

Capistranoで今処理しようとしているhostの属するroleを判定する

host.rolesを叩くと、role(のSymbol)のSetが返ってくる。task :foo do on release_roles :all do |host| host.roles #=> #<Set: {:web, :app, :db}> end endgit_strategyの中でもcontextを通して同じことができる。set :git_strategy,...

View Article


capistrano-rubotyというgemを書いた

capistranoでrubotyをデプロイするのをよしなに助けてくれるgemを書いた。github.comデーモン化とPIDファイルの書き出しに対応したruboty v1.3.0が必要になるので要注意。

View Article

capistrano-pending v0.2.0をリリースした

https://rubygems.org/gems/capistrano-pending/versions/0.2.0Capistranoのプラグイン方式がv3.7から大きく変わって:scm変数が非推奨になり、さらにv4.0からは消されるらしく、その対応のため。といってもいただいたPRの挙動を確認しただけだけど。github.com仕組みが変わるのはメンテする側からすると厄介だけど、見た感じフックす...

View Article

Browsing all 15 articles
Browse latest View live