Rabbit Slide Show

Dokkuの紹介

2019-08-23

Description

[Docker Meetup Kansai #4 (19.08)](https://dockerkansai.connpass.com/event/141875/) での LT の発表資料です。 ## For author

Text

Page: 1

Dokku の紹介
Kazuhiro NISHIYAMA
Docker Meetup Kansai #4 (19.08)
2019/08/23
Powered by Rabbit 2.2.1

Page: 2

自己紹介
西山 和広
Ruby コミッター
twitter, github など: @znz
株式会社Ruby開発 www.ruby-dev.jp
https://github.com/dokku/dokku/
graphs/contributors で #5 (2019-08 現
在)
1/13

Page: 3

contributors
2/13

Page: 4

Dokku とは?
http://dokku.viewdocs.io/dokku/
The smallest PaaS implementation
you’ve ever seen
mini-Heroku といっていたこともあった
3/13

Page: 5

向いているもの
1 台のサーバーで収まるアプリに向いている
buildpacks を使っているので規模が大きく
なったときに Heroku などのクラウドに移
行しやすい
データベースなどは別サーバーでも良い
(Heroku と同様)
4/13

Page: 6

向いていないもの
複数台にまたがるスケールアウト
ロードバランサーとか別途用意する必要がある?
ロールバックを考慮した運用
イメージにタグをつければ可能だが標準では古
いイメージは気にしない
git reset で戻すような運用よりも git revert
で積んでいくような運用に向いている
5/13

Page: 7

動作環境
x64 の Ubuntu, Debian, CentOS, Arch
こだわりがなければ Ubuntu がオススメ
Dokku 専用の VM を用意
動作をわかっていないと nginx や docker を他
のものと共有するのは難しい
メモリは 1GB 以上 (少ないとアプリのビルドに
失敗するなどのトラブルの原因に)
6/13

Page: 8

インストール
bootstrap.sh で docker も含めてインス
トール
Azure, DigitalOcean, ConoHa などはテン
プレートあり
7/13

Page: 9

Web UI から初期設定
8/13

Page: 10

初期設定項目
ssh の公開鍵を登録
ホスト名設定
サブドメインを使うか、アプリごとのポー
トを使うか
hello.example.com, test.example.com
example.com:48890, example.com:21835
9/13

Page: 11

アプリのデプロイ
データベースを使わないアプリなら git
push するだけ (Heroku と同様)
データベースを使うアプリならアプリを作
成してデータベースとリンク
buildpacks 以外に Dockerfile にも対応
10/13

Page: 12

https 設定
dokku-letsencrypt プラグインで自動設定
ダウンタイムなしで更新可能
自動更新も可能
wildcard は未対応 (DNS との連携が必要なの
で難しい)
CRT と KEY を用意して dokku
certs:add で設定
11/13

Page: 13

更新
sudo dokku-update ですべて更新
yaourt (arch), apt-get (debian, ubuntu),
(centos, opensuse では何もしない)
プラグインの更新
dokku ps:rebuildall でアプリのリビルド
12/13

Page: 14

まとめなど
Dokku を使えば Heroku のように git
push だけで更新できる PaaS を自前で構築
できる
前の会社では社内向け Rails アプリを動か
すのに使っていた
今は自分専用の Rails アプリを動かすのに
使っている
Powered by Rabbit 2.2.1
13/13

Other slides