Text
Page: 1
ヽ(´・⾁・`)
ノログとDocker
Page: 3
自⼰紹介
にく
I like
コンサドーレ札幌
Emacs
Ruby
Elixir/Phoenix
Page: 4
自⼰紹介
github̲id :: niku
twitter̲id :: niku̲name
web :: http://niku.name/
Page: 5
今⽇話すこと
http://niku.name/
どうやって表⽰しているか
どうやってコンテンツ更新しているか
Page: 6
どうやって表⽰しているか
Apache Webサーバー
Rack サーバーとアプリケーショ
ンを繋ぐミドルウェア
nwiki git のファイルの内容を
web に表⽰する
nikulog コンテンツ(git管理)
Page: 7
つらみ
アプリケーション開発者にとっ
ての趣味サーバー管理
サーバー管理者にとっての趣味
アプリケーション開発(?)
「これ,どうやるんだったっ
け……」
Page: 8
つらみ
知識としてはある
たまにしかやらないので毎回調
べるはめになる
[apache 設定 やり⽅] [検索]
Page: 9
つらみ対策
プロビジョニングツール
chef / itamae レシピ書けます
いいものだ
(僕は)サーバー管理の⼿数を減ら
したい
選定や知識のアップグレードの
時間を投資し続けることができ
るだろうか?
Page: 10
つらみ対策
わかれていると管理しやすいので
は
ミニマム構成のサーバー部分
⽳が少ない
気軽にアップデートでき,動作
検証しやすいアプリケーション
Page: 11
つらみ対策
ミニマム構成のサーバー =>
Docker だけインストールした
Debian
気軽にアップデートでき,動作
検証しやすいアプリケーション
=> Dockerイメージ
Page: 12
Dockerイメージを載せるサ
ーバー
さくらVPSにDebian8をインスト
ールして,コマンドを⼿で打ちま
した
Page: 15
niku/debian
PackerでOSイメージを自分で
作る⽅法を知っていた
Packerを使ってVagrantのBox
を作る⽅法を⼀つずつ説明する
- ヽ(´・⾁・`)ノログ
(URL⻑くて⼊らなかった)
Page: 16
niku/debian
OS イメージ作成,サーバー起動,
サーバーログイン
Page: 17
niku/debian
Debianサーバー内でDockerイメ
ージ⽣成,DockerHubへpush
Page: 18
niku/nwiki
AutomatedBuild
Github リポジトリを更新
Github から Dockerhub へ
Webhook でおしらせ
Dockerhub が Dockerfile を元
に Docker イメージをビルド
Page: 19
niku/nwiki
やりかた
Dockerfile のある github リポジ
トリを Dockerhub に
AutomatedBuild で登録
Page: 20
niku/nwiki
やりかた
github の webhook に
Dockerhub を指定
Page: 21
niku/nwiki
nwiki/Dockerfile
Page: 22
niku/nikulog
同様にAutomatedBuildを利用
Page: 23
niku/nikulog
nikulog/Dockerfile
Page: 24
サーバーとイメージ準備完了
で表⽰できるようになった (^o^)/
Page: 25
niku.name 更新のしくみ
更新は? ∑(゚□゚;)
Page: 26
niku.name 更新のしくみ
Docker導⼊以前
Page: 27
niku.name 更新のしくみ
参考にした
DockerHubのAutomated
Buildsをフックして最新の
Dockerコンテナをデプロイす
る | SOTA
http://deeeet.com/
writing/2015/01/08/
dockerhub-hook/
Page: 28
niku.name 更新のしくみ
Docker導⼊後
Page: 30
niku.name 更新待受
Webhook待受サーバー
bketelsen/captainhook
https://github.com/
bketelsen/captainhook
HTTPリクエストがくると設定し
たjsonのとおりにコマンドを実
⾏する
Page: 31
niku.name 更新待受
サーバーに追加でアプリケーショ
ンを⼊れたくない
niku/yobirinex
https://github.com/niku/
yobirinex
実⾏環境(ErlangVM)も同梱でき
るのでtarファイル展開した以下
で完結する
Page: 32
niku.name 更新待受
ErlangVM同梱HTTPサーバーの作
りかた
ElixirでHTTPのやりとりをする
http://niku.name/
articles/2015/07/03/Elixir%
E3%81%A7HTTP%E3%81%
AE%E3%82%84%E3%82%8A
%E3%81%A8%E3%82%8A%
Page: 33
niku.name 更新待受
更新用設定ファイル
Page: 35
その他/話せなかったこと1
Dockerhub のビルド遅くて数分
から⼗数分待つことがある.急
いでないので別に問題にしてい
ない
Webhook⾶んでこないことあ
る.Dockerhubならwebから⼿
動でビルド,niku.nameならロ
ーカルからcurlでリクエストし
てる
Page: 36
その他/話せなかったこと2
docker-compose使ってない.
Vagrant の docker プロビジョ
ンでまだ対応していない
Vagrant から Docker を使った
ときの docker exec デバッグの
やりかたを書きたかったけど時
間なかった
Packerでイメージつくるときの
DEBCONF̲DEBUG=5の有用さ
Page: 37
まとめ
niku.nameの表⽰
Dockerイメージ
niku.nameの更新
GithubのWebhook
DockerHubのAutomatedBuild
DockerHubのWebhook
独自Webhook待受サーバー