Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
続Dockerを使ったPHPアプリ開発とCIについて
Search
Ryo Tomidokoro
March 29, 2017
Programming
3
980
続Dockerを使ったPHPアプリ開発とCIについて
Dockerを使ったPHPアプリ開発と本番運用で困ったこと等
Ryo Tomidokoro
March 29, 2017
Tweet
Share
More Decks by Ryo Tomidokoro
See All by Ryo Tomidokoro
100分で本番デプロイ!Laravelで作るWebアプリケーション作成/100min_web_app_cicd
hanhan1978
1
63
PHPerのための計算量入門/Complexity101 for PHPer
hanhan1978
6
1.9k
集中して作業する技術/how_to_work_deeply
hanhan1978
62
46k
PHPでデータベースを作ってみた/create-data-with-php
hanhan1978
11
9.7k
ADRを一年運用してみた/adr_after_a_year
hanhan1978
8
3.8k
B+木入門:PHPで理解する データベースインデックスの仕組み/b-plus-tree-101
hanhan1978
5
4.9k
ADRを一年運用してみた/our_story_about_adr
hanhan1978
5
2.1k
PHPで学ぶ Session の基本と応用 / web-app-session-101-2024
hanhan1978
13
5.7k
レガシー回避のPHP開発術/avoid_php_legacy
hanhan1978
17
13k
Other Decks in Programming
See All in Programming
.NET Frameworkでも汎用ホストが使いたい!
tomokusaba
0
200
Jakarta EE meets AI
ivargrimstad
0
370
『テスト書いた方が開発が早いじゃん』を解き明かす #phpcon_nagoya
o0h
PRO
8
2.4k
Rubyで始める関数型ドメインモデリング
shogo_tksk
0
140
Honoのおもしろいミドルウェアをみてみよう
yusukebe
1
230
AIプログラミング雑キャッチアップ
yuheinakasaka
18
4.4k
ML.NETで始める機械学習
ymd65536
0
230
Rails 1.0 のコードで学ぶ find_by* と method_missing の仕組み / Learn how find_by_* and method_missing work in Rails 1.0 code
maimux2x
1
230
PHPのバージョンアップ時にも役立ったAST
matsuo_atsushi
0
230
バッチを作らなきゃとなったときに考えること
irof
2
530
pylint custom ruleで始めるレビュー自動化
shogoujiie
0
150
苦しいTiDBへの移行を乗り越えて快適な運用を目指す
leveragestech
0
1k
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
How to Ace a Technical Interview
jacobian
276
23k
Thoughts on Productivity
jonyablonski
69
4.5k
Designing for humans not robots
tammielis
250
25k
Navigating Team Friction
lara
183
15k
Unsuck your backbone
ammeep
669
57k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
193
16k
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
Rails Girls Zürich Keynote
gr2m
94
13k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.1k
The Pragmatic Product Professional
lauravandoore
32
6.4k
Six Lessons from altMBA
skipperchong
27
3.6k
Transcript
ଓ%PDLFSΛͬͨ 1)1ΞϓϦ։ൃͱ$* :PLPIBNB/PSUI !IBOIBO
ΞδΣϯμ %PDLFSͰ1)1ΞϓϦ։ൃ͢Δ࣌ͷߏ %PDLFSͬͨ։ൃͷ1SPT$POT $PEFTIJQ1SPͰ$*ͯ͠Έͨαϯϓϧ
1)1ΞϓϦ։ൃ࣌ͷߏ -BSBWFMͷ߹
ࠓ·Ͱͷ։ൃͷ߹ ϦϙδτϦϧʔτʹΞϓϦέʔγϣϯΛஔ
%PDLFSͰͷ։ൃͷ߹ ϧʔτʹ%PDLFSpMF MBSBWFMΞϓϦҰஈԼ͛ͯஔ
%PDLFSͰͷ։ൃͷ߹ ΞϓϦέʔγϣϯҎ֎ͷ༨ܭͳϑΝΠϧΛ ίϯςφʹ"%%͢Δ৺͕ͳ͍ɻ
QIQGQN͚ͩ͡Όಈ͔ͳ͍ͷͰ
EPDLFSDPNQPTFΛ͏ ࠷ۙͷ%PDLFS'PS.BDͩͱඪ४Ͱ͍ͭͯ͘Δ
͜Μͳத ։ൃڥʹඞཁͳίϯςφΛஔ͢Δ
ϦϙδτϦϧʔτͰ EPDLFSDPNQPTFVQE
ίϯςφ্ཱ͕͕ͪΔ
-BSBWFMಈ͘
%PDLFSͬͨ։ൃͷ1SPT$POT
ྑ͔ͬͨ ݄ฒ ؔ࿈ϛυϧΣΞͷΞοϓσʔτ͕؆୯ 8JO.BDͰಉ͡։ൃڥΛ؆୯ಋೖ ΞϓϦέʔγϣϯͱϛυϧΣΞͷૄ݁߹ ※12 Factor
Appͷߟ͑ʹࣗવͱۙ͘ͳΔ
ޙ֤ࣗͷ։ൃڥͷEPDLFSΛ࠷৽ʹ͠ͱ͚େৎ ͦ͏ࢥͬͯͨ࣌͋ͬͨɾɾɾ
ޙ͔Βରॲ͢Δͱհͳ όον࣮ߦͲ͏͢Δ ηογϣϯͲ͏͢Δ $*໘͍͘͞
όον࣮ߦͲ͏͢Δ
ίϯςφʹDSPOΛࠐΉʁ XFCIPPLΛίϯςφͰىಈͯ͠ɺDSPO ઐ༻ίϯςφ͔ΒIUUQͰ࣮ߦ )PTUͷDSPOΛ͏ LVCFSOFUJTͷDSPOઃఆΛར༻͢Δ
όον࣮ߦͷҝʹ༧Ίߟ͓͖͑ͯ͘͜ͱ ίϯςφઃܭͷҰ෦ͱͯ͠ࣄલʹߟ͓͑ͯ͘ DSPOઐ༻ίϯςφXFCIPPLͷ࡞͕໘ ͚ͩͲҠ২ੑߴ͍ ࣮ߦڥґଘͷํ๏ɺָ͚ͩͲҠ২ੑ͕ ͍ ※։ൃɾεςʔδɾຊ൪Λҙࣝͯ͠ܭը͢ΔඞཁΞϦ
ηογϣϯͲ͏͢Δ
ϑΝΠϧͩͱϦϦʔεͰফ͑Δ☓ ҉߸Խͯ͠$PPLJFʹೖΕΔ☓ 3FEJT͏ͱͯ͠3FEJTίϯςφͩͱϦϦʔεํ๏ʹ Αͬͯফ͑Δ ӬଓԽ͠ͳͯ͘ηογϣϯΛ෮ݩͰ͖ΔΈΛߟ͑ Δ˕
ϚωʔδυɾαʔϏεΛͬͯӬଓԽ͢Δ˚ ※AWSͷRedisͱ͔
ηογϣϯอ࣋ͷҝʹ༧Ίߟ͓͖͑ͯ͘͜ͱ ݁ہͷͱ͜ΖӬଓԽΛͲ͜ʹ࣋ͨͤΔ͔ͷ ίϯςφͷͨΊͷఆੴ͕͖ͬͱͰ͖Δ ئ ઃܭஈ֊Ͱߟ͓͔͑ͯͳ͍ͱ٧Ή࣌͋Δ
$*໘͍͘͞
طଘͷ$*πʔϧ%PDLFSόʔδϣϯͷਵʹ ͕ग़Δͱ͖͕͋Δ طଘͷ$*πʔϧͷ%PDLFSࢧԉҰ෦ͷػೳ͕0'' ΒΕ͍ͯΔ߹͕͋Δ ϏϧυޙͷϦϦʔείϯςφͷ࣮ߦڥґଘ͕ ͋Δ
ΦϯϓϨ+FOLJOT͓͡͞ΜͳΒɾɾɾ
֤$*ͷରԠঢ়گ CI Engine Compose Circle CI 1.09 (beta 1.12) ࣗྗಋೖ
Travis CI 1.12.3 ࣗྗಋೖ Codeship 1.12 ಋೖࡁΈ จ๏v1 Docker-Cloud ?? ଟ࠷৽ ?? ଟ࠷৽ Shippable 1.09 (beta 1.10) ࣗྗಋೖ &OHJOFͷ࠷৽όʔδϣϯ
DPNQPTFͷόʔδϣϯʹ͍ͭͯ Compose Engine จ๏ ~1.6.x 1.09 v1 1.6.x~ 1.10 v2
1.6.x~ 1.12 v2.1 1.9.x~ 1.13 v3 WͰWͷػೳ͕͑ͳ͔ͬͨΓ͢Δ
%PDLFSͷഁյతมߋ w dWͰϏϧυͯ͠ϨδετϦʹQVTI w WdͰQVMMग़དྷͳ͍ɻ http://docs.docker.jp/engine/breaking_changes.html
%PDLFS$*ͷҝʹ༧Ίߟ͓͖͑ͯ͘͜ͱ %PDLFSͷόʔδϣϯมԽΛ͏ $*ϑΝʔετͰઃܭΛߦ͏ ϦϦʔεͱΓ͠·ͰΛ໌֬ʹઃܭ͠ ͓ͯ͘͜ͱ
$PEFTIJQ1SPͰ$*ͯ͠Έͨαϯϓϧ
$PEFTIJQ1SPͷಛ ઃఆϑΝΠϧ͕ͦͷ··EPDLFSDPNQPTF ຖ݄Ϗϧυ·ͰQSJWBUFͰແྉ CVJMEDBDIF͕ͪΌΜͱ͖͘ DPNQPTFͷจ๏͕ಠࣗɻ͔ͭݹ͍ɻ ͱ͍͑ɺDPNQPTFΛωΠςΟϒͰαϙʔτ͍ͯ͠Δͷ
Ͱɺݸਓతʹ͘͢͝ظ͍ͯ͠Δ
-BSBWFMΛ͓͍ͷํ Լهʹαϯϓϧ্͛ͯஔ͖·ͨ͠ɻ https://github.com/hanhan1978/docker-laravel54-skelton
͓·͚ -BSBWFMͷ%VTLΛ࣮ߦ $PEFTIJQͰ$* Τϥʔ͕͋ͬͨΒεΫϦʔϯγϣοτ Λऔͬͯ4MBDL௨ ϑϩϯτΤϯυͷςετͳͷͰεΫγϣ ͕͋ΔͱΔͣ
ࢥͬͨΑΓΠέͯΔײ͕ग़ͨ