%PDLFSΞϓϦέʔγϣϯͷϙʔλϏϦςΟΛߟ͑Δ/BPZB*UP,"*;&/QMBUGPSN*OD4FOJPS5FDIOPMPHZ"EWJTPS%PDLFS.FFUVQ5PLZP
View Slide
%PDLFSΞϓϦέʔγϣϯΛϙʔλϒϧʹ͢Δɻ
̎ͭͷจ຺ %PDLFSίϯςφ͕ԼΛநԽ͢Δ %JTQPTBCMFͳ੍ʹΑΓΞϓϦέʔγϣϯʹ࠶ݱՄೳੑ͕ཁٻ͞ΕΔ
#VJME0ODF 3VO"OZXIFSF
%PDLFSίϯςφ͕ԼΛநԽ• #VJME0ODF 3VO"OZXIFSFh"p://www.slideshare.net/dotCloud/docker-‐intro-‐november
ྫBUMBTTJBOKJSB
$ docker run atlassian/jira ͜Ε͚ͩͰɺΠϝʔδ͕ެ։ϨϙδτϦ͔ΒQVMM͞ΕͯίϯςφͰ+*3"͕ىಈ͢Δ
#VJME0ODF 3VO"OZXIFSF• BUMBTTJBOKJSB%PDLFS͑͞ಈ͍ͯΕɺͲ͜Ͱಈ͘– -JOVY#PYɺCPPUEPDLFSɺ%JHJUBM0DFBOɺ(PPHMF$PNQVUF&OHJOF• ϩʔΧϧͰಈ͍ͯͨͷΛɺΫϥυ8FCΞϓϦέʔγϣϯͷΛ%PDLFSϨϙδτϦͰߦ͏ͷ͕ී௨ʹͳΔ͕དྷΔ
5IF'BDUPS"QQ
͏ҰͭͷϙʔλϏϦςΟ• %PDLFSͱ͍͏ΑΓ*NNVUBCMF*OGSBTUSVDUVSF༝དྷͷ• ࠶ݱՄೳͳΞϓϦέʔγϣϯ
*NNVUBCMF*OGSBTUSVDUVSF• %JTQPTBCMF$PNQPOFOUT• ෆมͳɺঢ়ଶΛ࣋ͨͳ͍ɺഇغՄೳͳ
ΞϓϦͷσϓϩΠઌΛίϯςφʹ͢Δ͜ͱΛߟ͑Δ• )FSPLV5SBWJT$*తͳ• ίϯςφͳͷͰɺΞϓϦέʔγϣϯ͕ຖഇغ͞Εͯ͠·͏• Ώ͑ʹɺΞϓϦέʔγϣϯʹ࠶ݱੑ͕ٻΊΒΕΔ݁ՌతʹɺΞϓϦ͕ϙʔλϒϧʹͳΔ
)FSPLV)FSPLVHJUQVTI͢Δຖɺ৽͍͠ڥ ίϯςφΛ࡞Γɺݹ͍ڥΛغͯΔ
ΞϓϦΛ࠶ݱՄೳʹ͢Δʹ• εςʔτϨεͭ4IBSFE/PUIJOH• ࣮ߦ֎෦ڥΛ໌֬ԽɾநԽɾႈԽ– #VOEMFS– 3BDL– 'PSFNBOίϯςφ͕ཁٻ͢ΔΠϯλϑΣʔεʹΑͬͯɺΞϓϦέʔγϣϯʹྑ੍͍Λ՝͢͜ͱ͕Ͱ͖Δ
5IF5XFMFWF'BDUPS"QQh"p://twelve-‐factor-‐ja.herokuapp.com/ (オリジナル: h"p://12factor.net/)
%PDLFSͰͲ͏͖͔͢• 'BDUPS"QQతͳͷ͕ྑ͍ΠϯλϑΣʔεͳͷΘ͔ͬͨ• ͡Ό͋ɺͦΜͳίϯςφΛ%PDLFSͰͲ͏༻ҙ͖͔͢– ࡞ͬͯΈͨ
OBPZBEPDLFSQBBTFYBNQMF• HJUIVCDPNOBPZBEPDLFSQBBTFYBNQMF• HJUQVTIΛܖػʹ%PDLFSίϯςφΛ࡞ΓΞϓϦέʔγϣϯΛඋ͠ಈ͔͢– CPPUEPDLFSɺHJUIPPLTQVMMSFRVFTUຖʹΞϓϦέʔγϣϯΛ্ཱͪ͛ͯ63-ΛׂΓͯΔɺΈ͍ͨͳ͜ͱΛࢹʹೖΕͯΔ
4JOBUSBΞϓϦέʔγϣϯΛHJUQVTI͢Δͱ%PDLFSίϯςφ͕ىಈ͠ɺͦͷ্Ͱಈ͘
࣌ؒ͋ͬͨΒσϞ
ͬͯΈͨ͜ͱ• લఏ3VCZ4JOBUSBͳ8FCΞϓϦ• ࣮ߦڥ SVCZ΄͔ͷϏϧυ ඞཁόʔδϣϯͷSVCZCVOEMFSͳͲΛ༧ΊೖΕͨ%PDLFSΠϝʔδΛ࡞͓ͬͯ͘ํࣜ )FSPLVͷCVJMEQBDLͰΦϯσϚϯυʹϏϧυ͢Δํࣜ• %PLLVΈ͍ͨͳσϞͬͨͷͷ΄͏
#VJMEQBDL• ΞϓϦέʔγϣϯͷ࣮ߦڥΛϏϧυ͢ΔͨΊͷεΫϦϓτύοέʔδ– ΠϯλϑΣʔε͕ඪ४Խ͞ΕͯΔ• CJOEFUFDUŋŋŋରΞϓϦͷݴޠͳͲΛఆ• CJODPNQJMFŋŋŋ࣮ߦʹඞཁͳڥΛϏϧυ– ྫSVCZͷϏϧυɺCVOEMFJOTUBMMFUD• CJOSFMFBTFŋŋŋΞϓϦέʔγϣϯ࣮ߦίϚϯυͷܾఆ– IFSPLVIFSPLVCVJMEQBDLSVCZ IFSPLVIFSPLVCVJMEQBDLOPEFKT NJZBHBXBIFSPLVCVJMEQBDLQFSMͦΕͧΕʹͭͷεΫϦϓτ͕ೖͬͯΔ
1. アプリ を git push 2. post-‐update hoook で docker run 3. コンテナ起動 4. アプリを git clone (※cloneじゃなくpushにしたい)
ΞϓϦͷHJUDMPOFޙ• EPDLFSSVOͰΞϓϦέʔγϣϯίʔυʹରͯ͠CVJMEQBDLΛద༻– CJOEFUFDUͰఆ͠USVF͕ฦͬͨΒɺͦͷCVJMEQBDLͷCJODPNQJMFͰϏϧυ– CJOSFMFBTFͰܾఆ͞Ε࣮ͨߦίϚϯυΛFYFD
SVCZͷϏϧυͳͲΦϯσϚϯυͰ
ͬͯΈͯࢥͬͨ͜ͱ
CVJMEQBDLΛ͏ͱŋŋŋ• ॊೈɻΞϓϦέʔγϣϯͷ࣮ߦڥΛޙ͔ΒಈతʹܾఆͰ͖Δ– ΑͬͯɺݴޠͷछྨYόʔδϣϯ͝ͱʹڥΛ࡞͓ͬͯ͘ŋŋŋͱ͔ඞཁͳ͍
ͰɺͪΐͬͱͯΑ • %PDLFSΠϝʔδ࡞ͬͯίϯςφىಈ͢Δͷ؆୯͡ΌΜ – CVJMEQBDLํࣜॊೈ͚ͩͲɺͦͷॊೈੑཁΔ – SVCZ༻ΠϝʔδɺOPEFKT༻Λ࡞͓͍ͬͯͯɺಈ͔͢ͷʹ߹ΘͤͯΠϝʔδΛબͯ͠SVO͢Δํ͕ࣜ୯७ָͭͩͬͨ
Ωϡʔ˓ʔΫοΩϯάํࣜ• ʮ͜͜ͰSVCZCVOEMFS͕ඞཁʹͳΓ·͕͢ŋŋŋ͋Β͔͡Ί࡞͓͖ͬͯ·ͨ͠ʯ%PDLFSͳΒ࡞Γஔ͖؆୯ɻ%PDLFSϨϙδτϦͰڞ༗0,
ΞΠσΞ ·ͩ• CVJMEQBDLతͳ%PDLFSJNBHFT– CVJMEQBDLͷEFUFDUͰڥΛఆ͠– ͦͷڥʹదͨ͠อଘࡁΈίϯςφΛબ͠– CVJMEQBDLͷSFMFBTFͷΑ͏ʹͦͷίϯςφʹܾΊΒΕͨૢ࡞Λ࣮ߦͤ͞ΔCVJMEQBDLͰϏϧυͨ͠ίϯςφΛDPNNJUͯ͠࠶ར༻ɺͱ͔Ͱ͍͍͔
ͯͳΘ͚Ͱɺ·ͱΊ• %PDLFSΞϓϦέʔγϣϯͷϙʔλϏϦςΟΛߴΊΔ– ͭ#VJME0ODF 3VO"OZXIFSFͷ– ͏ͭ5IF'BDUPS"QQͳ• ޙऀͰɺίϯςφΛͲ͏༻ҙ͖͔͢– Ωϡʔ˓ʔΫοΩϯάํࣜͰׂͱΑ͍
એ• ,"*;&/1MBUGPSN*ODΤϯδχΞืूͯ͠·͢• ΠϯϑϥࣗಈԽɺ*NNVUBCMFɺ%PDLFSͱ͔͍͖͍ͬͯͨํɺ͓ͪͯ͠·͢