Submit Search
Upload
Building production server on docker
•
Download as ODP, PDF
•
3 likes
•
1,239 views
Hiroshi Miura
Follow
第153回小江戸らぐ 発表資料 Dockerで、チャットサーバを立ち上げる
Read less
Read more
Technology
Report
Share
Report
Share
1 of 24
Download now
Recommended
Dockerと継続的インテグレーション
Dockerと継続的インテグレーション
Yahoo!デベロッパーネットワーク
Docker Swarm入門
Docker Swarm入門
Masahito Zembutsu
Capistrano
Capistrano
Yasuharu Fukuda
GitLab + Dokku で作る CI/CD 環境
GitLab + Dokku で作る CI/CD 環境
Kazuhiro Nishiyama
Dockerでデプロイ
Dockerでデプロイ
oshiro_seiya
静的サイトどこにする?
静的サイトどこにする?
ogawatti
Dive into dockerネットワーク
Dive into dockerネットワーク
Kazuyuki Mori
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよ
npsg
Recommended
Dockerと継続的インテグレーション
Dockerと継続的インテグレーション
Yahoo!デベロッパーネットワーク
Docker Swarm入門
Docker Swarm入門
Masahito Zembutsu
Capistrano
Capistrano
Yasuharu Fukuda
GitLab + Dokku で作る CI/CD 環境
GitLab + Dokku で作る CI/CD 環境
Kazuhiro Nishiyama
Dockerでデプロイ
Dockerでデプロイ
oshiro_seiya
静的サイトどこにする?
静的サイトどこにする?
ogawatti
Dive into dockerネットワーク
Dive into dockerネットワーク
Kazuyuki Mori
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよ
npsg
あの日実行したコンテナの名前を僕達はまだ知らない。
あの日実行したコンテナの名前を僕達はまだ知らない。
Masahito Zembutsu
Openresty
Openresty
ogawatti
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Naoki Nagazumi
Docker超入門
Docker超入門
Katsunori Kanda
Docker Machineを始めるには?
Docker Machineを始めるには?
Masahito Zembutsu
コンテナ情報交換会2
コンテナ情報交換会2
Masahide Yamamoto
Docker handson
Docker handson
koda3
20150101勉強会 dokku alt
20150101勉強会 dokku alt
Shugo Numano
Dockerのディスクについて ~ファイルシステム・マウント方法など~
Dockerのディスクについて ~ファイルシステム・マウント方法など~
HommasSlide
Docker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレ
peryaudo
清貧Docker ~個人がDockerを使う理由~
清貧Docker ~個人がDockerを使う理由~
harupong
PaaSの作り方 Sqaleの場合
PaaSの作り方 Sqaleの場合
hiboma
第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西
Masahide Yamamoto
WDD2012_SC-004
WDD2012_SC-004
Kuninobu SaSaki
Nuxt.js + microCMS + netlify
Nuxt.js + microCMS + netlify
ogawatti
DockerでGUIアプリケーションを動かす
DockerでGUIアプリケーションを動かす
igjit
Dockerハンズオン
Dockerハンズオン
Kazuyuki Mori
【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化
Yuki Kanazawa
Jenkins with Docker
Jenkins with Docker
Yahoo!デベロッパーネットワーク
Drone.io のご紹介
Drone.io のご紹介
Uchio Kondo
Dockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニック
Emma Haruka Iwao
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
Masahito Zembutsu
More Related Content
What's hot
あの日実行したコンテナの名前を僕達はまだ知らない。
あの日実行したコンテナの名前を僕達はまだ知らない。
Masahito Zembutsu
Openresty
Openresty
ogawatti
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Naoki Nagazumi
Docker超入門
Docker超入門
Katsunori Kanda
Docker Machineを始めるには?
Docker Machineを始めるには?
Masahito Zembutsu
コンテナ情報交換会2
コンテナ情報交換会2
Masahide Yamamoto
Docker handson
Docker handson
koda3
20150101勉強会 dokku alt
20150101勉強会 dokku alt
Shugo Numano
Dockerのディスクについて ~ファイルシステム・マウント方法など~
Dockerのディスクについて ~ファイルシステム・マウント方法など~
HommasSlide
Docker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレ
peryaudo
清貧Docker ~個人がDockerを使う理由~
清貧Docker ~個人がDockerを使う理由~
harupong
PaaSの作り方 Sqaleの場合
PaaSの作り方 Sqaleの場合
hiboma
第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西
Masahide Yamamoto
WDD2012_SC-004
WDD2012_SC-004
Kuninobu SaSaki
Nuxt.js + microCMS + netlify
Nuxt.js + microCMS + netlify
ogawatti
DockerでGUIアプリケーションを動かす
DockerでGUIアプリケーションを動かす
igjit
Dockerハンズオン
Dockerハンズオン
Kazuyuki Mori
【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化
Yuki Kanazawa
Jenkins with Docker
Jenkins with Docker
Yahoo!デベロッパーネットワーク
Drone.io のご紹介
Drone.io のご紹介
Uchio Kondo
What's hot
(20)
あの日実行したコンテナの名前を僕達はまだ知らない。
あの日実行したコンテナの名前を僕達はまだ知らない。
Openresty
Openresty
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Docker超入門
Docker超入門
Docker Machineを始めるには?
Docker Machineを始めるには?
コンテナ情報交換会2
コンテナ情報交換会2
Docker handson
Docker handson
20150101勉強会 dokku alt
20150101勉強会 dokku alt
Dockerのディスクについて ~ファイルシステム・マウント方法など~
Dockerのディスクについて ~ファイルシステム・マウント方法など~
Docker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレ
清貧Docker ~個人がDockerを使う理由~
清貧Docker ~個人がDockerを使う理由~
PaaSの作り方 Sqaleの場合
PaaSの作り方 Sqaleの場合
第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西
WDD2012_SC-004
WDD2012_SC-004
Nuxt.js + microCMS + netlify
Nuxt.js + microCMS + netlify
DockerでGUIアプリケーションを動かす
DockerでGUIアプリケーションを動かす
Dockerハンズオン
Dockerハンズオン
【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化
Jenkins with Docker
Jenkins with Docker
Drone.io のご紹介
Drone.io のご紹介
Similar to Building production server on docker
Dockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニック
Emma Haruka Iwao
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
Masahito Zembutsu
Docker実践入門
Docker実践入門
hiro nemu
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Masahito Zembutsu
Docker Swarm モード にゅうもん
Docker Swarm モード にゅうもん
Masahito Zembutsu
Docker講習会資料
Docker講習会資料
teruyaono1
Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例
maebashi
Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴
Masahito Zembutsu
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Masahiro Nagano
Docker & Kubernetes基礎
Docker & Kubernetes基礎
Daisuke Hiraoka
Circle ci and docker+serverspec
Circle ci and docker+serverspec
Tsuyoshi Yamada
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
Masahito Zembutsu
Newcomer2020 Docker研修
Newcomer2020 Docker研修
Suguru Yazawa
20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!
Midori Oge
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話
Masahito Zembutsu
Dockerを支える技術
Dockerを支える技術
Etsuji Nakai
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Yu Nobuoka
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
NTT DATA Technology & Innovation
Server side Swift & Photo Booth
Server side Swift & Photo Booth
LINE Corporation
Fig
Fig
Tadayasu Yotsu
Similar to Building production server on docker
(20)
Dockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニック
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
Docker実践入門
Docker実践入門
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker Swarm モード にゅうもん
Docker Swarm モード にゅうもん
Docker講習会資料
Docker講習会資料
Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例
Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Docker & Kubernetes基礎
Docker & Kubernetes基礎
Circle ci and docker+serverspec
Circle ci and docker+serverspec
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
Newcomer2020 Docker研修
Newcomer2020 Docker研修
20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話
Dockerを支える技術
Dockerを支える技術
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Server side Swift & Photo Booth
Server side Swift & Photo Booth
Fig
Fig
More from Hiroshi Miura
Intoroduction of py7zr
Intoroduction of py7zr
Hiroshi Miura
How GNSS changes mapping?
How GNSS changes mapping?
Hiroshi Miura
Osm how to_mapping_2014
Osm how to_mapping_2014
Hiroshi Miura
How to mapping_hondout
How to mapping_hondout
Hiroshi Miura
"Up" with vagrant and docker
"Up" with vagrant and docker
Hiroshi Miura
赤羽マッピングパーティ
赤羽マッピングパーティ
Hiroshi Miura
webdb forum_sinsai
webdb forum_sinsai
Hiroshi Miura
tohoku univ alumni meeting
tohoku univ alumni meeting
Hiroshi Miura
Japan OSS promotion Forum symposium - Neaoss wg2 activity
Japan OSS promotion Forum symposium - Neaoss wg2 activity
Hiroshi Miura
SotM2011 crisis mapping and sinsai.info
SotM2011 crisis mapping and sinsai.info
Hiroshi Miura
unihandecode: An Unicode transliteration library
unihandecode: An Unicode transliteration library
Hiroshi Miura
Infotalk#33 "みんなでつくる震災復興支援プラットホームSinsai.infoを実現する技術とチーム運営"
Infotalk#33 "みんなでつくる震災復興支援プラットホームSinsai.infoを実現する技術とチーム運営"
Hiroshi Miura
日本国際地図学会 20110808 震災とジオメディア
日本国際地図学会 20110808 震災とジオメディア
Hiroshi Miura
Sinsai.info Symposium: OSM now
Sinsai.info Symposium: OSM now
Hiroshi Miura
Sinsai.info, CrisisMap and the next
Sinsai.info, CrisisMap and the next
Hiroshi Miura
Kof2005 Presen
Kof2005 Presen
Hiroshi Miura
Starting Osm Japan2008 Sot M2008
Starting Osm Japan2008 Sot M2008
Hiroshi Miura
More from Hiroshi Miura
(17)
Intoroduction of py7zr
Intoroduction of py7zr
How GNSS changes mapping?
How GNSS changes mapping?
Osm how to_mapping_2014
Osm how to_mapping_2014
How to mapping_hondout
How to mapping_hondout
"Up" with vagrant and docker
"Up" with vagrant and docker
赤羽マッピングパーティ
赤羽マッピングパーティ
webdb forum_sinsai
webdb forum_sinsai
tohoku univ alumni meeting
tohoku univ alumni meeting
Japan OSS promotion Forum symposium - Neaoss wg2 activity
Japan OSS promotion Forum symposium - Neaoss wg2 activity
SotM2011 crisis mapping and sinsai.info
SotM2011 crisis mapping and sinsai.info
unihandecode: An Unicode transliteration library
unihandecode: An Unicode transliteration library
Infotalk#33 "みんなでつくる震災復興支援プラットホームSinsai.infoを実現する技術とチーム運営"
Infotalk#33 "みんなでつくる震災復興支援プラットホームSinsai.infoを実現する技術とチーム運営"
日本国際地図学会 20110808 震災とジオメディア
日本国際地図学会 20110808 震災とジオメディア
Sinsai.info Symposium: OSM now
Sinsai.info Symposium: OSM now
Sinsai.info, CrisisMap and the next
Sinsai.info, CrisisMap and the next
Kof2005 Presen
Kof2005 Presen
Starting Osm Japan2008 Sot M2008
Starting Osm Japan2008 Sot M2008
Recently uploaded
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
Recently uploaded
(9)
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
Building production server on docker
1.
Building production server on
Docker Hiroshi Miura 2015.4.11 第 1 5 3 回 小 江 戸 ら ぐ 4 月 の オ フ な 集 ま り
2.
Who am I Introduction Methods Results Discussion
3.
What is Docker Introduction Methods Results Discussion ●
コンテナを柔軟に使う技術 Dockerfile コンテナイメージ docker HUB実行環境 docker build docker push docker pulldocker run
4.
What is Container Introduction Methods Results Discussion ●
通常プロセスを仮想化技術のように使う ● リソース隔離+名前空間隔離 ● jail, chroot の進化したもの 物理ハードウエア( CPU, メモリ、 NIC) Linux カーネル ユーザ空間 ユーザ空間 プロセス プロセス プロセス プロセス
5.
feature of Docker Introduction Methods Results Discussion ●
階層化技術 ● スペースと時間を削減可能 Dockerfile docker HUB実行環境 ベースイメー ジ 差分ダウンロード Ubuntu Dockerfile Ubuntu ruby Ubuntu rubyUbuntu APP 実行環境 ruby
6.
Docker install Introduction Methods Results Discussion ● Docker –
http://docs.docker.com/installation/ ● Docker-compose – オーケストレーションツール – http://docs.docker.com/compose/install/ $ wget -qO- https://get.docker.com/ | sh $ curl -L https://github.com/docker/compose/releases/download/1.1.0/docker- compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose $ chmod +x /usr/local/bin/docker-compose
7.
Docker つかうだけ Introduction Methods Results Discussion ● redmine
を立ち上げる – 準備するファイル : docker-compose.yml $ docker-compose up -d postgresql: image: sameersbn/postgresql:9.4 environment: - DB_USER=redmine - DB_PASS=phatiphohsukeuwo - DB_NAME=redmine_production redmine: image: sameersbn/redmine:3.0.1 links: - postgresql:postgresql environment: - DB_USER=redmine - DB_PASS=phatiphohsukeuwo - DB_NAME=redmine_production ports: - "80:80"
8.
Dockerfile の書き方 Introduction Methods Results Discussion ● FROM
< ベースイメージ > ● MAINTAINER < 作成者 > ● ADD < 設定ファイルのテンプレート、イン ストールスクリプト > < 行き先 > ● RUN < コマンド> ● RUN <上記で追加したスクリプト> ● EXPOSE <ポート番号> ● VOLUMES <データ用ディレクトリ> ● ENTRYPOINT <実行用コマンド> ● CMD <実行引数>
9.
おすすめの書き方 Introduction Methods Results Discussion ● インストールスクリプトは – 共通部、個別部の2段構成 ●
複数のコンテナに共通するステージ – 途中段階のベースイメージを作る ● ADD,RUN は乱発しない – それぞれ階層になる ● docker キャッシュで開発効率化可能。 ● 段数上限あり – &&でつなぐ →可読性低下 ● サイズ削減する処理を最後に追加
10.
実例 :rbenv Introduction Methods Results Discussion ● rbenv:
ruby の実行環境 ● 共通のテンプレートとして整備する ● ruby で作られるアプリの実行基盤とな る ● 複数の Ruby バージョンを選択可能に ● 必要なバージョンのみで最小サイズ Ubuntu rbenv ruby 2.0 Ubuntu rbenv ruby 2.1 Ubuntu rbenv ruby 2.2
11.
実例 :rbenv Introduction Methods Results Discussion ● Github
で Dockerfile ● Docker HUB のリポジトリ – Docker pull するイメージ – TAG ● 自動 BUILD 設定 – レシピとイメージが1:1を保証 – マルウエア等が含まれていないことを ソースで確認可能
12.
実例 :rbenv:ruby インストール Introduction Methods Results Discussion #!/bin/bash (
いろいろ : 環境変数設定、ユーザ作成、 gem や Bundle のパス設定) apt-get update apt-get -y install build-essential curl ca-certificates gcc g++ make bison libgdbm-dev ( いろいろ略) rbenv install ${RUBY_VER} rbenv global ${RUBY_VER} gem update --system --no-document gem install bundler --no-rdoc --no-ri rbenv rehash # cleanup apt-get -y remove libgdbm-dev libncursesw5-dev libncurses5-dev libreadline6-dev build-essential curl ( などなど、開発ファイルのみ) apt-get clean apt-get -y autoremove
13.
実例 :kandan Introduction Methods Results Discussion ● kandan:
OSS の Web チャットソフト ● lingr,slack,hipchat の代わり ● github.com/kandanapp/kandan
14.
15.
実例 :kandan Introduction Methods Results Discussion ● kandan
の Dockerfile ● インストールスクリプト ● 実行スクリプト
16.
kandan: install Introduction Methods Results Discussion #!/bin/bash ( いろいろ
: 環境変数設定、ユーザ作成、 gem や Bundle のパス設定) apt-get update apt-get -y install supervisor build-essential curl unzip git-core gcc curl -sL https://deb.nodesource.com/setup | bash - apt-get -y install nodejs apt-get -y install sqlite3 libmysqlclient18 libmysqlclient-dev libsqlite3-dev ( いろいろ) cat > ${KANDAN_CONF} <<__EOL__ [program:kandan] command=${BUNDLE} exec thin start -e production autostart=true autorestart=false username=${RUN_USER} directory=${INSTALL_DIR}/kandan stdout_logfile=${LOG_DIR}/%(program_name)s.log stderr_logfile=${LOG_DIR}/%(program_name)s.log environment=RBENV_ROOT=${RBENV_ROOT} __EOL__ sudo -u ${RUN_USER} -E -H git clone --depth 1 -b i18n --single-branch https://github.com/miurahr/kandan.git
17.
kandan: install (cont.) Introduction Methods Results Discussion #
cleanup dev files apt-get -y remove unzip gcc g++ make curl git-core build-essential libmysqlclient-dev libsqlite3-dev libpq-dev libcurl4-openssl-dev libpcre3-dev libxml2-dev libxslt-dev libreadline-gplv2-dev # clean apt caches and more apt-get clean apt-get -y autoremove find /var/lib/apt/lists/ -type f -exec rm -f {} ; exit 0
18.
kandan: init Introduction Methods Results Discussion cat >
${INSTALL_DIR}/kandan/config/database.yml << __EOL1__ production: adapter: mysql2 reconnect: false timeout: 5000 database: ${DB_NAME} host: ${DB_HOST} port: ${DB_PORT} pool: ${DB_POOL} username: ${DB_USER} password: ${DB_PASS} __EOL1__ # start supervisord exec /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
19.
kandan: init (cont.) Introduction Methods Results Discussion prog="mysqladmin
-h ${DB_HOST} -P ${DB_PORT} -u ${DB_USER} ${DB_PASS:+-p$DB_PASS} status" timeout=60 echo -n "Waiting for database server to accept connections" while ! ${prog} >/dev/null 2>&1 do timeout=$(expr $timeout - 1) if [ $timeout -eq 0 ]; then echo -e "nCould not connect to database server. Aborting..." exit 1 fi echo -n "." sleep 1 done ● コンテナから DBMS を同時に起動した場 合に、 DBMS の起動を待つ必要あり
20.
kandan: init (cont.) Introduction Methods Results Discussion #
start supervisord exec /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf ● 最終的に supervisord で アプリデーモンを起動 – コンテナ内には、 kernel や init, upstart,systemd はない
21.
オーケストレーションツール Introduction Methods Results Discussion ● コマンドを複数を順序良く実行するのは大変 ↓例↓ docker run -d
-e "VIRTUAL_HOST=example.com" -e "MONGO_URL=mongodb://dbserver:27017/libreboard" -e "ROOT_URL=http://example.com" -p 5555:5555 miurahr/libreboard ● オーケストレーションツールを使う docker-compose.yml Libreboard: image: miurahr/libreboard environments: - VIRTUAL_HOST=example.com ports: - 5555:5555
22.
Acknowledgements ● Kandan: Kadan
app project ● Hubot: Github.com ● Docker, dockerHub: Docker.com
23.
Acknowledgements ● Great docker
recipes by Sameer Naik https://github.com/sameersbn
24.
Reference ● Presentation: https://www.slideshare.net/miurahr/building- ● Source: https://github.com/miurahr ●
Docker HUB registory: https://hub.docker.com/u/miurahr/
Download now