まちゅダイアリー


2016-01-04 (月)

tDiaryをHeroku pipelineで動かせるようにした

HerokuにはHeroku pipelineという機能がある。Githubと連携して、プルリクエストのたびに自動的にHerokuのインスタンスを生成してくれる。わざわざブランチをローカル環境に持ってきて動かす手間が省けるのでとても便利な機能。この機能を使うためには、masterブランチ(プルリクエストの元になるブランチ)がHerokuへのデプロイに対応している必要がある。

tDiaryはこれまで、Herokuへのデプロイはheroku専用ブランチのみ対応していた。これは、Heroku独自の設定 (揮発性環境に対応するため日記データをMongoLabに保存するためのgemの追加や特有のtdiary.confファイルの配置など) を加えているため。Heroku pipelineを使いたかったので、tDiaryのmasterブランチでもHerokuへデプロイできるようにした。

要はHeroku特有に用意したファイル (Gemfile.local, Gemfile.lock, tdiary.conf, あとは専用の更新用プラグイン) を差し替えるだけ。ところが、Herokuのapp.jsonファイルではデプロイ後に動かすスクリプトはpostdeployとして指定できるが、デプロイ前のスクリプトは指定できない。しかたがないので、デプロイ時に動かすHerokuのbuildpackをカスタマイズすることにした。

はじめは公式のruby用buildpackをforkしてみたが、これが内部的に結構複雑なことをやっている。もう少し調べていたらデプロイ時には複数のbuildpackを指定できることがわかったので、ファイルをコピーするだけのbuildpackを書いて、公式のruby用buildpackと併用することにした。buildpackの中身は単純なシェルスクリプト。久しぶりにシェルスクリプトを書いたよ。

heroku pipeline

これでプルリクエストのたびにHerokuへ自動デプロイされるようになり、 tDiary の開発がもっとはかどるようになった。よかった。

Tags: tdiary

2016-01-03 (日)

スカパーe2を解約した

F1のリアルタイム観戦のためだけにスカパーe2を契約していたけど、最近はすっかり観る時間もなくなってしまったのでいったん解約することにした。Live TimingやTwitter実況と一緒に観ていた頃は楽しかったので、また時間ができたら観れるといいなぁ。

Tags: life

2015-12-30 (水)

tDiary 4.2.1 on Ruby 2.3.0

tDiary 4.2.1をリリースした。もちろん、先日のクリスマスにリリースされたばかりのRuby 2.3.0にも対応しているので、この日記も最新版に更新した。

  1. tDiary用のDockerfileをRuby2.3使うように書き換え
  2. docker build -t machu/tdiary . でdockerイメージをビルド
  3. docker-compose up -d でコンテナを再起動

手順もシンプルだし、dockerを使っているのでサーバ構成もファイルで管理できていて安心。

Tags: tdiary ruby