トップ «前の日記(2017/09/07 (木) ) 最新 次の日記(2017/09/09 (土) )» 編集 RSS feed

HsbtDiary


2017/09/08 (金) [長年日記]

ruby-lang.org 向けの heroku の buildpack を作った

今まで www.ruby-lang.org や bugs.ruby-lang.org の heroku dyno は公式の heroku/ruby な buildpack を fork してそこへ jekyll のビルドフック入れたり、subversion のバイナリを配置したりしていたけど、そろそろ upstream を持ってきて更新という作業もだるくなってきたので multi buildpack の機能を使って、heroku/ruby をベースとして、ちょっとした処理を追加するという感じにした。

やってることは bin/compile のフェーズで slug を作るときの処理に単純なバイナリ配置のシェルを雑に書いただけ。とはいえ、ちゃんとしたドキュメントは https://devcenter.heroku.com/articles/buildpack-api くらいしかないのでだいぶ試行錯誤しながら作った。

具体的なポイントとしては

  • compile が実行されるディレクトリと build dir は異なるので、カレントディレクトリに Gemfile などを期待したようなコマンドは動かない(明示的に cd する)
  • dyno が動く環境変数は end dir に環境変数名をファイルとしたテキストファイルで入っているのでそれらを cat したり、echo したりしていじる
  • PATH などは env dir からは操作できないので build dir の .profile.d に適当なシェルとして配置する

って辺りにハマって大変だった。buildpack チョットできる。