Text
Page: 1
dokku を本番環
境で使ってみた話
Kazuhiro NISHIYAMA
第7回 コンテナ型仮想化の情報交換会@大阪
2015/06/20
Page: 2
自⼰紹介
twitter や github では @znz
Page: 3
Ruby 関連
Ruby (CRuby) のコミッター
Ruby 関係でいろいろ
るびま (Rubyist Magazine) とか
http://magazine.rubyist.net/
るりま (Ruby リファレンスマニュア
ル) とか
http://docs.ruby-lang.org/ja/
Ruby 関連のイベントでの発表
Page: 4
その他
Debian 関係
関⻄ Debian 勉強会や大統⼀ Debian
勉強会での発表
各種勉強会
この勉強会などでの発表
Page: 5
dokku とは?
docker による mini Heroku ク
ローン
git で deploy
単独サーバーで実⾏
スケーラビリティはない (スケールア
ウトできない)
Page: 6
dokku の歴史 (知っている
範囲で)
0.2.x で開発が停滞していた
dokku-alt という fork ができた
開発がまた活発になっていた
Deis というスポンサーがついていた
Page: 7
使い⽅
クリーンな Ubuntu 14.04 x64
でインストール
heroku のようにコマンド操作
dokku コマンドで操作
リモートから ssh で操作
ssh 経由の git で deploy
Page: 8
使ってみた感想
安定して動いているときは安定
している
細かい不満はいくつかある
デフォルトのタイムアウトが短い
ログが悩ましい
プラグインの対応バージョンがわかり
にくい
Page: 9
タイムアウトを伸ばす
/home/dokku/ENVで増やす
CURL̲CONNECT̲TIMEOUT
CURL̲TIMEOUT
Page: 10
永続的ストレージ
docker-options プラグイン (標
準添付) を利用
ログをホスト側に記録
dokku docker-options:add demo-app
deploy,run "-v /srv/demo-app/log:/app/
log"
ファイルアップロード
dokku docker-options:add demo-app
deploy,run "-v /srv/demo-app/uploads:/
app/uploads"
Page: 11
プラグイン
ドキュメントに⼀覧がある
http://progrium.viewdocs.io/
dokku/plugins
古いバージョンとの互換は今で
も使えるのかが不明
標準に取り込まれた機能もある
(末尾に⼀覧)
Page: 12
PostgreSQL プラグイン
Compatible with 0.3.16 のもの
を使ってみた
https://github.com/Flink/dokku-
psql-single-container
dokku の deb 更新時に問題あ
り
https://github.com/Flink/dokku-
psql-single-container/issues/5
Page: 13
sshcommand 書き換え
PostgreSQL プラグインのため
chown のところを書き換えた
chown -R dokku /home/dokku 相
当
chown 999 -R /home/dokku/.psql-
sc/data が必要
chown -R /home/dokku/.ssh /
home/dokku/* 相当に変更
Page: 14
deb パッケージ
0.3.17 から deb パッケージイ
ンストールが標準になった
Page: 15
memcached
プラグインは使わず、ホスト側
にインストール
ufw で制限した上で lo 以外も
listen するように変更
docker 用の interface は起動
のタイミングで存在しなかった
Page: 16
環境変数
タブを含む環境変数はうまく設
定できなかった
heroku ではできた
LTSV が設定したかった
結局「,」区切りにした
Page: 17
dokku run
cron で2個同時に動かすとエラ
ーになることがあった
1分ずらした
標準⼊⼒をリダイレクトで受け
取れなかった
.forward でメール処理ができなかっ
た
Page: 18
まとめ
dokku は用途によっては使える
ソースまで読む気がないと使い
こなすのは難しい
heroku はやっぱりすごい