Rabbit Slide Show

dokku を本番環境で使ってみた話

2015-06-20

Description

dokku を本番環境で使ってみて、はまった点などの話です。

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   はやっぱりすごい

Other slides