Text
Page: 1
ヽ(´・⾁・`) ノログとDocker
Page: 2
タイトルずれました
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: 13
Docker
Page: 14
Docker
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: 29
niku.name 更新待受
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: 34
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待受サーバー