Inside Dokku in 5 minutes

Heroku Meetup #11 New Year Party!! - 新年会 - / 20140104

Kohei Hasegawa @banyan, Quipper, Ltd.

最近遊びのアプリケーションを Dokku で動かすようにしてみて色々仕組みが面白かったので今日はその紹介をします。

Dokku - https://github.com/progrium/dokku

Docker powered mini-Heroku in around 100 lines of Bash. The smallest PaaS implementation you've ever seen.

Docker をベースとして 100行くらいの Bash で書かれた mini-Heroku。あなたが今まで見た中でもっとも小さな PaaS 実装。

Dokku の概要

Dokku の構成要素

Dokku のインストール

サーバで実行

クライアントで実行

実際 git push すると何が起こるのか?

まず sshcommand の設定で

/home/dokku/.ssh/authorized_keys

これでメインの dokku スクリプトが実行される。

dokku receive では4つのフローが実行されます。

dokku cleanup


使われてないイメージやコンテナを消す

dokku build


パイプで docker のコンテナの中の /app にソースを inject して docker commit します。 またイメージは progrium/buildstep の Docker のイメージをベースにしています。

その後、buildstep の build/builder というスクリプトが、このアプリケーションが何の言語かを調べて、各言語の buildpack を compile してコミットします。

dokku release


とかで設定してある ENV がある場合にコンテナに inject して、
コンテナを docker commit します。

dokku deploy


ここで実際にコンテナが起動されます。これでアクセスできるようになりました :)

Dokku にある機能

Dokku 0.3.0 で予定されてる機能

(現在 2014/01/16 は v0.2.1)

Demo

まとめ

参照URL

ご清聴ありがとうございました。

#

/