Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Masashi Shinbara
PDF, PPTX
23,593 views
ビルドサーバで使うDocker
2014/12/19 DevLove関西「ビルドサーバで使うDocker」
Technology
◦
Read more
34
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 58
2
/ 58
3
/ 58
4
/ 58
5
/ 58
6
/ 58
7
/ 58
8
/ 58
9
/ 58
10
/ 58
11
/ 58
12
/ 58
13
/ 58
14
/ 58
15
/ 58
16
/ 58
17
/ 58
18
/ 58
19
/ 58
20
/ 58
21
/ 58
22
/ 58
23
/ 58
24
/ 58
25
/ 58
26
/ 58
27
/ 58
28
/ 58
29
/ 58
30
/ 58
31
/ 58
32
/ 58
33
/ 58
34
/ 58
35
/ 58
36
/ 58
37
/ 58
38
/ 58
39
/ 58
40
/ 58
41
/ 58
42
/ 58
43
/ 58
44
/ 58
45
/ 58
46
/ 58
47
/ 58
48
/ 58
49
/ 58
50
/ 58
51
/ 58
52
/ 58
53
/ 58
54
/ 58
55
/ 58
56
/ 58
57
/ 58
58
/ 58
More Related Content
PDF
関数型プログラミングのデザインパターンひとめぐり
by
Kazuyuki TAKASE
PPTX
分散システムについて語らせてくれ
by
Kumazaki Hiroki
PDF
【Unite Tokyo 2019】Understanding C# Struct All Things
by
UnityTechnologiesJapan002
PDF
GoによるWebアプリ開発のキホン
by
Akihiko Horiuchi
PDF
Eclipseデバッガを活用するための31のtips
by
Hiroki Kondo
PDF
CloudNativeな決済サービスの開発と2年間の歩み #sf_A4
by
Junya Suzuki
PDF
Paxos
by
Preferred Networks
PDF
Dockerfile を書くためのベストプラクティス解説編
by
Masahito Zembutsu
関数型プログラミングのデザインパターンひとめぐり
by
Kazuyuki TAKASE
分散システムについて語らせてくれ
by
Kumazaki Hiroki
【Unite Tokyo 2019】Understanding C# Struct All Things
by
UnityTechnologiesJapan002
GoによるWebアプリ開発のキホン
by
Akihiko Horiuchi
Eclipseデバッガを活用するための31のtips
by
Hiroki Kondo
CloudNativeな決済サービスの開発と2年間の歩み #sf_A4
by
Junya Suzuki
Paxos
by
Preferred Networks
Dockerfile を書くためのベストプラクティス解説編
by
Masahito Zembutsu
What's hot
PDF
FridaによるAndroidアプリの動的解析とフッキングの基礎
by
ken_kitahara
PDF
ソフトウェア開発における『知の高速道路』
by
Yoshitaka Kawashima
PDF
Dockerからcontainerdへの移行
by
Kohei Tokunaga
PDF
DX 時代の新たなソフトウェア工学に向けて: SWEBOK と SE4BS の挑戦
by
Hironori Washizaki
PPTX
緊急Ques - コードのメトリクスに基づくリファクタリング戦略
by
Tomoki Kuriyama
PPTX
インセプションデッキ:やらないことリストとトレードオフスライダーをやってる話
by
Nobuhiro Yoshitake
PDF
組織にテストを書く文化を根付かせる戦略と戦術
by
Takuto Wada
PDF
MySQLの文字コード事情 2017版
by
Masahiro Tomita
PDF
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
by
Preferred Networks
PPTX
WayOfNoTrouble.pptx
by
Daisuke Yamazaki
PPTX
PHPとシグナル、その裏側
by
do_aki
PDF
.NET Core 3.0時代のメモリ管理
by
KageShiron
PDF
Constexprとtemplateでコンパイル時にfizz buzz
by
京大 マイコンクラブ
PDF
5分でわかった気になるインセプションデッキ
by
Takao Oyobe
PDF
Docker Compose 徹底解説
by
Masahito Zembutsu
PDF
Usb接続するアプリを開発した時に試行錯誤した事
by
Masataka Kono
PDF
それはYAGNIか? それとも思考停止か?
by
Yoshitaka Kawashima
PDF
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
by
JustSystems Corporation
PPTX
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
by
SEGADevTech
PPTX
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
by
SEGADevTech
FridaによるAndroidアプリの動的解析とフッキングの基礎
by
ken_kitahara
ソフトウェア開発における『知の高速道路』
by
Yoshitaka Kawashima
Dockerからcontainerdへの移行
by
Kohei Tokunaga
DX 時代の新たなソフトウェア工学に向けて: SWEBOK と SE4BS の挑戦
by
Hironori Washizaki
緊急Ques - コードのメトリクスに基づくリファクタリング戦略
by
Tomoki Kuriyama
インセプションデッキ:やらないことリストとトレードオフスライダーをやってる話
by
Nobuhiro Yoshitake
組織にテストを書く文化を根付かせる戦略と戦術
by
Takuto Wada
MySQLの文字コード事情 2017版
by
Masahiro Tomita
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
by
Preferred Networks
WayOfNoTrouble.pptx
by
Daisuke Yamazaki
PHPとシグナル、その裏側
by
do_aki
.NET Core 3.0時代のメモリ管理
by
KageShiron
Constexprとtemplateでコンパイル時にfizz buzz
by
京大 マイコンクラブ
5分でわかった気になるインセプションデッキ
by
Takao Oyobe
Docker Compose 徹底解説
by
Masahito Zembutsu
Usb接続するアプリを開発した時に試行錯誤した事
by
Masataka Kono
それはYAGNIか? それとも思考停止か?
by
Yoshitaka Kawashima
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
by
JustSystems Corporation
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
by
SEGADevTech
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
by
SEGADevTech
Viewers also liked
PPTX
アプリチームを支えるSlack bot
by
Kazuaki KURIU
PDF
MySQL・PostgreSQLだけで作る高速でリッチな全文検索システム
by
Kouhei Sutou
PPTX
Laravelチュートリアルを作ってみた。
by
Futoshi Endo
PDF
指の動きや遷移時等のアニメーションを生かしたUIのサンプル解説
by
Fumiya Sakai
PDF
Firebaseでのファイルアップロード処理と便利ライブラリの紹介
by
Fumiya Sakai
PPTX
20151205フルスクラッチcms作成のノウハウ With Laravel
by
Takumi Yoshida
PDF
PHPでPostgreSQLとPGroongaを使って高速日本語全文検索!
by
Kouhei Sutou
PDF
デザインにもこだわったUiの事始め3
by
Fumiya Sakai
PDF
Laravel / Lumen 次の一歩
by
Yuuki Takezawa
PDF
3 tips of Laravel
by
Kazuaki KURIU
PPTX
JavaScriptから利用するFirebase
by
Takuji Shimokawa
PDF
わかってるフレームワーク Laravel
by
Masashi Shinbara
PPTX
Phpフレームワーク 「laravel」でブログを作ろう
by
Syouta Tada
PDF
カスタムトランジションやジェスチャーを生かしたUIの実装ポイント
by
Fumiya Sakai
PDF
デザイナーがXcodeを使って 開発効率をUPさせた 5つのエピソード + 現場エンジニアのコメント付き
by
Mayumi Narisawa
PDF
Laravel の学び方と得られる学び
by
Masaru Matsuo
PPTX
[Laravel] CRUDアプリから一歩踏み出す3つのアプローチ
by
Kazuaki KURIU
PDF
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
by
Masashi Shinbara
PPTX
Laravelを使ってみた
by
Jaeseop Jeong
PPTX
Laravel LT
by
Iwama Ryo
アプリチームを支えるSlack bot
by
Kazuaki KURIU
MySQL・PostgreSQLだけで作る高速でリッチな全文検索システム
by
Kouhei Sutou
Laravelチュートリアルを作ってみた。
by
Futoshi Endo
指の動きや遷移時等のアニメーションを生かしたUIのサンプル解説
by
Fumiya Sakai
Firebaseでのファイルアップロード処理と便利ライブラリの紹介
by
Fumiya Sakai
20151205フルスクラッチcms作成のノウハウ With Laravel
by
Takumi Yoshida
PHPでPostgreSQLとPGroongaを使って高速日本語全文検索!
by
Kouhei Sutou
デザインにもこだわったUiの事始め3
by
Fumiya Sakai
Laravel / Lumen 次の一歩
by
Yuuki Takezawa
3 tips of Laravel
by
Kazuaki KURIU
JavaScriptから利用するFirebase
by
Takuji Shimokawa
わかってるフレームワーク Laravel
by
Masashi Shinbara
Phpフレームワーク 「laravel」でブログを作ろう
by
Syouta Tada
カスタムトランジションやジェスチャーを生かしたUIの実装ポイント
by
Fumiya Sakai
デザイナーがXcodeを使って 開発効率をUPさせた 5つのエピソード + 現場エンジニアのコメント付き
by
Mayumi Narisawa
Laravel の学び方と得られる学び
by
Masaru Matsuo
[Laravel] CRUDアプリから一歩踏み出す3つのアプローチ
by
Kazuaki KURIU
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
by
Masashi Shinbara
Laravelを使ってみた
by
Jaeseop Jeong
Laravel LT
by
Iwama Ryo
Similar to ビルドサーバで使うDocker
PDF
【dots. IT勉強会】開発環境のDocker化
by
Yuki Kanazawa
PPTX
Ansibleで始めるinfraTDD(初級編)
by
佐久本正太
PDF
コンテナ情報交換会2
by
Masahide Yamamoto
PDF
VagrantユーザのためのDocker入門
by
Masashi Shinbara
PDF
Dockerイメージ構築 実践テクニック
by
Emma Haruka Iwao
PDF
Dockerの導入
by
regret raym
PDF
今だからこそ知りたい Docker Compose/Swarm 入門
by
Masahito Zembutsu
PPTX
Docker & Kubernetes基礎
by
Daisuke Hiraoka
PDF
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
by
Masahiro Nagano
PDF
Ansible ではじめるサーバ作業の自動化
by
Masashi Shinbara
PDF
バージョンアップに負けないためのプラクティス
by
Yuji Tokuda
PPTX
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
by
辰徳 斎藤
PDF
Osc201703 tokyo-clonezilla-v1.2 j
by
Akira Yoshiyama
PDF
Docker入門: コンテナ型仮想化技術の仕組みと使い方
by
Yuichi Ito
PDF
Docker handson
by
koda3
PDF
Fig
by
Tadayasu Yotsu
PDF
Ansible入門
by
Akira Otsuka
PDF
Building production server on docker
by
Hiroshi Miura
ODP
Building production server on docker
by
Hiroshi Miura
PDF
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
by
Masahito Zembutsu
【dots. IT勉強会】開発環境のDocker化
by
Yuki Kanazawa
Ansibleで始めるinfraTDD(初級編)
by
佐久本正太
コンテナ情報交換会2
by
Masahide Yamamoto
VagrantユーザのためのDocker入門
by
Masashi Shinbara
Dockerイメージ構築 実践テクニック
by
Emma Haruka Iwao
Dockerの導入
by
regret raym
今だからこそ知りたい Docker Compose/Swarm 入門
by
Masahito Zembutsu
Docker & Kubernetes基礎
by
Daisuke Hiraoka
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
by
Masahiro Nagano
Ansible ではじめるサーバ作業の自動化
by
Masashi Shinbara
バージョンアップに負けないためのプラクティス
by
Yuji Tokuda
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
by
辰徳 斎藤
Osc201703 tokyo-clonezilla-v1.2 j
by
Akira Yoshiyama
Docker入門: コンテナ型仮想化技術の仕組みと使い方
by
Yuichi Ito
Docker handson
by
koda3
Fig
by
Tadayasu Yotsu
Ansible入門
by
Akira Otsuka
Building production server on docker
by
Hiroshi Miura
Building production server on docker
by
Hiroshi Miura
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
by
Masahito Zembutsu
More from Masashi Shinbara
PDF
日本語消えたスライド
by
Masashi Shinbara
PDF
Twilio入門 -Web アプリ編-
by
Masashi Shinbara
PDF
いまどきのPHP開発現場 -2015年秋-
by
Masashi Shinbara
PDF
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
by
Masashi Shinbara
PDF
先取り!PHP 7 と WordPress
by
Masashi Shinbara
PDF
Twilio を使えば簡単にできる アプリケーションと電話/SMS連携
by
Masashi Shinbara
PDF
How to learn Laravel5 application from Authentication
by
Masashi Shinbara
PDF
認証機能で学ぶ Laravel 5 アプリケーション
by
Masashi Shinbara
PDF
Azure Websites で作るスケーラブルな PHP アプリケーション
by
Masashi Shinbara
PDF
開発現場で活用するVagrant
by
Masashi Shinbara
PDF
PHPコードではなく PHPコードの「書き方」を知る
by
Masashi Shinbara
PDF
Heroku で作る スケーラブルな PHP アプリケーション
by
Masashi Shinbara
PDF
Vagrant体験入門
by
Masashi Shinbara
PDF
Laravel ユーザなら知っておくべきAuthオートログイン
by
Masashi Shinbara
PDF
キャラ立ちしたエンジニアになる!
by
Masashi Shinbara
PDF
Composer 再入門
by
Masashi Shinbara
PDF
Vagrant で PHP 開発環境を作る ハンズオン
by
Masashi Shinbara
PDF
Twilio API を PHP で触ってみよう
by
Masashi Shinbara
PDF
いまどきのPHP
by
Masashi Shinbara
PDF
Vagrant で作る PHP 開発環境 [実践編]
by
Masashi Shinbara
日本語消えたスライド
by
Masashi Shinbara
Twilio入門 -Web アプリ編-
by
Masashi Shinbara
いまどきのPHP開発現場 -2015年秋-
by
Masashi Shinbara
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
by
Masashi Shinbara
先取り!PHP 7 と WordPress
by
Masashi Shinbara
Twilio を使えば簡単にできる アプリケーションと電話/SMS連携
by
Masashi Shinbara
How to learn Laravel5 application from Authentication
by
Masashi Shinbara
認証機能で学ぶ Laravel 5 アプリケーション
by
Masashi Shinbara
Azure Websites で作るスケーラブルな PHP アプリケーション
by
Masashi Shinbara
開発現場で活用するVagrant
by
Masashi Shinbara
PHPコードではなく PHPコードの「書き方」を知る
by
Masashi Shinbara
Heroku で作る スケーラブルな PHP アプリケーション
by
Masashi Shinbara
Vagrant体験入門
by
Masashi Shinbara
Laravel ユーザなら知っておくべきAuthオートログイン
by
Masashi Shinbara
キャラ立ちしたエンジニアになる!
by
Masashi Shinbara
Composer 再入門
by
Masashi Shinbara
Vagrant で PHP 開発環境を作る ハンズオン
by
Masashi Shinbara
Twilio API を PHP で触ってみよう
by
Masashi Shinbara
いまどきのPHP
by
Masashi Shinbara
Vagrant で作る PHP 開発環境 [実践編]
by
Masashi Shinbara
ビルドサーバで使うDocker
1.
2014/12/19 shin1x1 DevLove 関西 ビルドサーバで使う Docker
2.
Agenda (c) 2014 Masashi
Shinbara @shin1x1 • 開発構成 • 旧ビルドサーバ(Docker導入前) • 現ビルドサーバ(Docker導入後) • Docker in CI • 運用してみて • まとめ
3.
開発構成 (c) 2014 Masashi
Shinbara @shin1x1
4.
PHPプロジェクト (c) 2014 Masashi
Shinbara @shin1x1 • Web アプリケーション開発 • PHP / Webサーバ / DB / KVS 等々 • PHPUnit で自動テスト
5.
ビルドサーバ (c) 2014 Masashi
Shinbara @shin1x1 • Jenkins サーバ • PHPUnit によるテスト実行 • デプロイ [ステージング / 本番] • (カバレッジ計測、静的解析等)
6.
旧ビルドサーバ (c) 2014 Masashi
Shinbara @shin1x1
7.
(c) 2014 Masashi
Shinbara @shin1x1 構成 Mac (1) git push (2) hook (3) git pull 社内サーバ (4) notification
8.
社内Jenkinsサーバ (c) 2014 Masashi
Shinbara @shin1x1 • 2009年頃構築 • 複数プロジェクトを管理 • 1サーバに別バージョンのPHPやDBを同居 • ビルドタスクを欲張る (カバレッジ、APIドキュメント、静的解析等)
9.
困っていたこと (c) 2014 Masashi
Shinbara @shin1x1 • プロジェクト毎の環境構築が面倒 (パスやポートを変えて同居) • トラブルシューティングが面倒 • git push の度にサーバが唸る
10.
困っていたこと (c) 2014 Masashi
Shinbara @shin1x1 • プロジェクト毎の環境構築が面倒 (パスやポートを変えて同居) • トラブルシューティングが面倒 • git push の度にサーバが唸る
11.
困っていたこと (c) 2014 Masashi
Shinbara @shin1x1 • プロジェクト毎の環境構築が面倒 (パスやポートを変えて同居) • トラブルシューティングが面倒 • git push の度にサーバが唸る
12.
現ビルドサーバ (c) 2014 Masashi
Shinbara @shin1x1
13.
(c) 2014 Masashi
Shinbara @shin1x1 構成 Mac private repo (1) git push ビルドサーバ(さくらVPS) (2) hook (3) git pull (4) docker build & docker run (5) notification
14.
現Jenkinサーバ (c) 2014 Masashi
Shinbara @shin1x1 • さくらのVPS(2G)/ 月々1,580円 • Memory: 2GB • CPU: 仮想3Core • HDD: 200GB • CentOS 6.6
15.
構成のポイント (c) 2014 Masashi
Shinbara @shin1x1 • 外部サーバ、SaaS を利用 • Dockerでビルド環境を構築 • タスクを自動テスト実行に絞る
16.
Docker in CI (c)
2014 Masashi Shinbara @shin1x1
17.
Dockerの利用方針 (c) 2014 Masashi
Shinbara @shin1x1 • アプリケーションが動作する環境を 1 コンテナに集約 • Dockerfile を push して、 Jenkins サーバでイメージを生成 • アプリケーションは、ホストからマウント コンテナは、実行環境に徹する
18.
(c) 2014 Masashi
Shinbara @shin1x1 構成 Mac private repo (1) git push CI サーバ(さくらVPS) (2) hook (3) git pull (4) docker build & docker run
19.
(c) 2014 Masashi
Shinbara @shin1x1 Dockerfile Mac Dockerfile private repo CI サーバ(さくらVPS)
20.
Dockerfile (c) 2014 Masashi
Shinbara @shin1x1 • Dockerfile とプロビジョンファイルを用意 • プロビジョンには Ansible を利用 • 開発プロジェクトと同じリポジトリで管理
21.
FROM centos:centos6 # Ansible
インストール、プロビジョン RUN … # Supervisor インストール RUN … # アプリケーションセットアップ、テスト実行 CMD … Dockerfile
22.
FROM centos:centos6 # Ansible
インストール RUN … # Supervisor インストール RUN … # アプリケーションセットアップ、テスト実行 CMD … Dockerfile CentOS Official Image
23.
FROM centos:centos6 # Ansible
インストール、プロビジョン RUN … # Supervisor インストール RUN … # アプリケーションセットアップ、テスト実行 CMD … Dockerfile プロビジョン
24.
FROM centos:centos6 # Ansible
インストール、プロビジョン RUN … # Supervisor インストール RUN … # アプリケーションセットアップ、テスト実行 CMD … Dockerfile サービス起動用
25.
FROM centos:centos6 # Ansible
インストール、プロビジョン RUN … # Supervisor インストール RUN … # アプリケーションセットアップ、テスト実行 CMD … Dockerfile コンテナ実行コマンド
26.
Ansible (c) 2014 Masashi
Shinbara @shin1x1 • コンテナにインストール • ローカルコネクションで自身にプロビジョン • playbookやroleを別環境 (開発、ステージング等)と共有 • レイヤを節約
27.
RUN rpm -ivh
http://ftp.riken.jp/Linux/fedora/ epel/6/i386/epel-release-6-8.noarch.rpm RUN yum -y install ansible libselinux-python sudo ADD provision /opt/provision RUN ansible-playbook /opt/provision/docker.yml -- connection=local -i /opt/provision/localhost -vv Ansible
28.
RUN rpm -ivh
http://ftp.riken.jp/Linux/fedora/ epel/6/i386/epel-release-6-8.noarch.rpm RUN yum -y install ansible libselinux-python sudo ADD provision /opt/provision RUN ansible-playbook /opt/provision/docker.yml -- connection=local -i /opt/provision/localhost -vv Ansible Ansibleインストール
29.
RUN rpm -ivh
http://ftp.riken.jp/Linux/fedora/ epel/6/i386/epel-release-6-8.noarch.rpm RUN yum -y install ansible libselinux-python sudo ADD provision /opt/provision RUN ansible-playbook /opt/provision/docker.yml -- connection=local -i /opt/provision/localhost -vv Ansible プロビジョンファイルをインポート
30.
RUN rpm -ivh
http://ftp.riken.jp/Linux/fedora/ epel/6/i386/epel-release-6-8.noarch.rpm RUN yum -y install ansible libselinux-python sudo ADD provision /opt/provision RUN ansible-playbook /opt/provision/docker.yml -- connection=local -i /opt/provision/localhost -vv Ansible ansible-playbook 実行 (ローカルコネクション)
31.
Supervisor (c) 2014 Masashi
Shinbara @shin1x1 • デーモンプロセスを起動(死活監視込) • 1プロセスで、複数のデーモンを起動 • Webサーバ、DB を起動
32.
RUN yum -y
install python-setuptools RUN easy_install supervisor ADD docker/supervisord.conf /etc/supervisord.conf Supervisor Supervisor インストール
33.
RUN yum -y
install python-setuptools RUN easy_install supervisor ADD docker/supervisord.conf /etc/supervisord.conf Supervisor 設定ファイルをインポート
34.
コンテナコマンド (c) 2014 Masashi
Shinbara @shin1x1 • Supervisor を起動 • composer install(依存解決) • DBマイグレーション • PHPUnit(自動テスト)実行
35.
コンテナコマンド CMD /usr/bin/supervisord -c
/etc/supervisord.conf && cd /share && /usr/bin/composer install && php artisan migrate --env=testing && ./vendor/bin/phpunit --log-junit /share/reports/junit.xml —coverage-html /share/reports/coverage —coverage-clover /share/reports/coverage.xml
36.
CMD /usr/bin/supervisord -c
/etc/supervisord.conf && cd /share && /usr/bin/composer install && php artisan migrate --env=testing && ./vendor/bin/phpunit --log-junit /share/reports/junit.xml —coverage-html /share/reports/coverage —coverage-clover /share/reports/coverage.xml コンテナコマンド Supervisor 起動
37.
CMD /usr/bin/supervisord -c
/etc/supervisord.conf && cd /share && /usr/bin/composer install && php artisan migrate --env=testing && ./vendor/bin/phpunit --log-junit /share/reports/junit.xml —coverage-html /share/reports/coverage —coverage-clover /share/reports/coverage.xml コンテナコマンド 依存解決
38.
CMD /usr/bin/supervisord -c
/etc/supervisord.conf && cd /share && /usr/bin/composer install && php artisan migrate --env=testing && ./vendor/bin/phpunit --log-junit /share/reports/junit.xml —coverage-html /share/reports/coverage —coverage-clover /share/reports/coverage.xml コンテナコマンド DBマイグレーション
39.
CMD /usr/bin/supervisord -c
/etc/supervisord.conf && cd /share && /usr/bin/composer install && php artisan migrate --env=testing && ./vendor/bin/phpunit --log-junit /share/reports/junit.xml —coverage-html /share/reports/coverage —coverage-clover /share/reports/coverage.xml コンテナコマンド 自動テスト実行
40.
(c) 2014 Masashi
Shinbara @shin1x1 Jenkinsで実行 Mac private repo CI サーバ(さくらVPS) docker build && run
41.
Jenkinsで実行 (c) 2014 Masashi
Shinbara @shin1x1 • git pull でリポジトリから Dockerfile 取得 • docker build でイメージ生成 • docker run でコンテナ実行 • 結果レポートを Jenkins で表示
42.
Jenkinsで実行 (c) 2014 Masashi
Shinbara @shin1x1
43.
Jenkinsで実行 (c) 2014 Masashi
Shinbara @shin1x1 sudo docker build -t ${JOB_NAME} . sudo docker run -v ${WORKSPACE}/src:/share ${JOB_NAME}
44.
docker build (c) 2014
Masashi Shinbara @shin1x1 • Dockerfile からイメージをビルド • ジョブ名(${JOB_NAME})をイメージ名に sudo docker build -t ${JOB_NAME} .
45.
docker run (c) 2014
Masashi Shinbara @shin1x1 • 生成したイメージからコンテナ実行 • -v で、アプリケーションディレクトリを マウント sudo docker run -v ${WORKSPACE}/src:/share ${JOB_NAME}
46.
マウントディレクトリ対応 (c) 2014 Masashi
Shinbara @shin1x1 ${WORKSPACE}/src + application_code + build/ /share + application_code + build/ ホスト(Jenkins) コンテナ
47.
アプリケーション (c) 2014 Masashi
Shinbara @shin1x1 ${WORKSPACE}/src + application_code + build/ /share + application_code + build/ ホスト(Jenkins) コンテナ アプリケーションを参照
48.
結果レポート (c) 2014 Masashi
Shinbara @shin1x1 ${WORKSPACE}/src + application_code + build/ /share + application_code + build/ ホスト(Jenkins) コンテナ /share/build/ に 結果ログを出力
49.
結果レポート (c) 2014 Masashi
Shinbara @shin1x1 ${WORKSPACE}/src + application_code + build/ /share + application_code + build/ ホスト(Jenkins) コンテナ build/ のログから 結果レポート生成
50.
結果レポート (c) 2014 Masashi
Shinbara @shin1x1
51.
8ヶ月運用してみて (c) 2014 Masashi
Shinbara @shin1x1
52.
Dockerコンテナの良さ (c) 2014 Masashi
Shinbara @shin1x1 • プロジェクト毎に独立した環境 • 軽量なので、低スペック機でも利用可能 • 毎回、作って、使って、捨ててなので、管理が楽 • どこでも同じコンテナが作れるので、メンテが楽 (boot2docker で検証できる)
53.
突然のテスト失敗 (c) 2014 Masashi
Shinbara @shin1x1 • 開発環境で all green だったテストがこける • なぜか依存解決で失敗 • コンテナから外部へ通信できない>< • docker デーモン再起動で解決
54.
突然のテスト失敗2 (c) 2014 Masashi
Shinbara @shin1x1 • docker デーモン再起動でも復旧せず • yum install でエラー • EPEL の CA証明書の期限切れ • ベースイメージを更新 (yum update ca-certificates でも ok)
55.
今後 (c) 2014 Masashi
Shinbara @shin1x1 • ステージングサーバへのコンテナデプロイ • docker コンテナ実行環境は クラウドサービスに任せたい • コンテナレポジトリも任せたい • 全部自分でやるなら、PaaS の方が楽
56.
まとめ (c) 2014 Masashi
Shinbara @shin1x1
57.
(c) 2014 Masashi
Shinbara @shin1x1 まとめ • マルチな環境を同居させるのに便利 • ビルド、ジョブワーカーなど 使い捨ての環境なら、実用的 • 常に起動するサービスなら、 docker デーモン運用、デプロイ、監視等々を Dockerクラウドサービスに任せたい
58.
@shin1x1 (c) 2014 Masashi
Shinbara @shin1x1
Download