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アプリケーションのポータビリティを考える #dockerjp
Search
Naoya Ito
April 11, 2014
Technology
26
9.9k
Dockerアプリケーションのポータビリティを考える #dockerjp
Naoya Ito
April 11, 2014
Tweet
Share
More Decks by Naoya Ito
See All by Naoya Ito
Haskell を武器にして挑む競技プログラミング ─ 操作的思考から意味モデル思考へ
naoya
8
2.4k
Haskell でアルゴリズムを抽象化する / 関数型言語で競技プログラミング
naoya
21
7.4k
Functional TypeScript
naoya
18
6.6k
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
76
37k
シェルの履歴とイクンリメンタル検索を使う
naoya
16
6.5k
20230227-engineer-type-talk.pdf
naoya
91
84k
関数型プログラミングと型システムのメンタルモデル
naoya
63
110k
TypeScript による GraphQL バックエンド開発
naoya
29
37k
フロントエンドのパラダイムを参考にバックエンド開発を再考する / TypeScript による GraphQL バックエンド開発
naoya
67
25k
Other Decks in Technology
See All in Technology
ランサムウェア対策としてのpnpm導入のススメ
ishikawa_satoru
0
220
私たち準委任PdEは2つのプロダクトに挑戦する ~ソフトウェア、開発支援という”二重”のプロダクトエンジニアリングの実践~ / 20260212 Naoki Takahashi
shift_evolve
PRO
2
200
CDKで始めるTypeScript開発のススメ
tsukuboshi
1
550
30万人の同時アクセスに耐えたい!新サービスの盤石なリリースを支える負荷試験 / SRE Kaigi 2026
genda
4
1.4k
Exadata Fleet Update
oracle4engineer
PRO
0
1.1k
会社紹介資料 / Sansan Company Profile
sansan33
PRO
15
400k
AIエージェントに必要なのはデータではなく文脈だった/ai-agent-context-graph-mybest
jonnojun
1
250
Claude Code for NOT Programming
kawaguti
PRO
1
100
usermode linux without MMU - fosdem2026 kernel devroom
thehajime
0
240
SRE Enabling戦記 - 急成長する組織にSREを浸透させる戦いの歴史
markie1009
0
170
GitHub Issue Templates + Coding Agentで簡単みんなでIaC/Easy IaC for Everyone with GitHub Issue Templates + Coding Agent
aeonpeople
1
260
Kiro IDEのドキュメントを全部読んだので地味だけどちょっと嬉しい機能を紹介する
khmoryz
0
210
Featured
See All Featured
The SEO Collaboration Effect
kristinabergwall1
0
350
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
390
How GitHub (no longer) Works
holman
316
140k
30 Presentation Tips
portentint
PRO
1
220
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
70
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
280
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
Building an army of robots
kneath
306
46k
WCS-LA-2024
lcolladotor
0
450
Amusing Abliteration
ianozsvald
0
100
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.7k
SEO for Brand Visibility & Recognition
aleyda
0
4.2k
Transcript
%PDLFSΞϓϦέʔγϣϯͷ ϙʔλϏϦςΟΛߟ͑Δ /BPZB*UP ,"*;&/QMBUGPSN*OD 4FOJPS5FDIOPMPHZ"EWJTPS %PDLFS.FFUVQ5PLZP
%PDLFSΞϓϦέʔγϣϯ Λϙʔλϒϧʹ͢Δɻ
̎ͭͷจ຺ %PDLFSίϯςφ͕ԼΛநԽ͢Δ %JTQPTBCMFͳ੍ʹΑΓΞϓϦέʔ γϣϯʹ࠶ݱՄೳੑ͕ཁٻ͞ΕΔ
#VJME0ODF 3VO "OZXIFSF
%PDLFSίϯςφ͕ԼΛநԽ • #VJME0ODF 3VO"OZXIFSF h"p://www.slideshare.net/dotCloud/docker-‐intro-‐november
ྫBUMBTTJBOKJSB
$ docker run atlassian/jira ͜Ε͚ͩͰɺΠϝʔδ͕ ެ։ϨϙδτϦ͔Β QVMM͞ΕͯίϯςφͰ +*3"͕ىಈ͢Δ
#VJME0ODF 3VO"OZXIFSF • BUMBTTJBOKJSB%PDLFS͑͞ಈ͍ͯΕ ɺͲ͜Ͱಈ͘ – -JOVY#PYɺCPPUEPDLFSɺ%JHJUBM 0DFBOɺ(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"QQ h"p://twelve-‐factor-‐ja.herokuapp.com/ (オリジナル: h"p://12factor.net/)
%PDLFSͰͲ͏͖͔͢ • 'BDUPS"QQతͳͷ͕ྑ͍Πϯλ ϑΣʔεͳͷΘ͔ͬͨ • ͡Ό͋ɺͦΜͳίϯςφΛ%PDLFSͰͲ ͏༻ҙ͖͔͢ – ࡞ͬͯΈͨ
OBPZBEPDLFSQBBTFYBNQMF • HJUIVCDPNOBPZBEPDLFSQBBT FYBNQMF • HJUQVTIΛܖػʹ%PDLFSίϯςφΛ ࡞ΓΞϓϦέʔγϣϯΛඋ͠ಈ͔͢ – CPPUEPDLFSɺHJUIPPLT QVMMSFRVFTUຖʹΞϓϦ έʔγϣϯΛ্ཱͪ͛ͯ
63-ΛׂΓͯΔɺΈ͍ͨ ͳ͜ͱΛࢹʹೖΕͯΔ
4JOBUSBΞϓϦέʔγϣϯ ΛHJUQVTI͢Δͱ %PDLFSίϯςφ͕ىಈ͠ɺ ͦͷ্Ͱಈ͘
࣌ؒ͋ͬͨΒσϞ
ͬͯΈͨ͜ͱ • લఏ3VCZ 4JOBUSBͳ8FCΞϓϦ • ࣮ߦڥ SVCZ΄͔ ͷϏϧυ ඞཁόʔδϣϯͷSVCZCVOEMFSͳͲΛ
༧ΊೖΕͨ%PDLFSΠϝʔδΛ࡞͓ͬͯ͘ ํࣜ )FSPLVͷCVJMEQBDLͰΦϯσϚϯυʹ Ϗϧυ͢Δํࣜ • %PLLVΈ͍ͨͳ σϞͬͨͷͷ΄͏
#VJMEQBDL • ΞϓϦέʔγϣϯͷ࣮ߦڥΛϏϧυ͢ ΔͨΊͷεΫϦϓτύοέʔδ – ΠϯλϑΣʔε͕ඪ४Խ͞ΕͯΔ • CJOEFUFDUŋŋŋରΞϓϦͷݴޠͳͲΛఆ • CJODPNQJMFŋŋŋ࣮ߦʹඞཁͳڥΛϏϧυ –
ྫSVCZͷϏϧυɺCVOEMFJOTUBMMFUD • CJOSFMFBTFŋŋŋΞϓϦέʔγϣϯ࣮ߦίϚϯυ ͷܾఆ – IFSPLVIFSPLVCVJMEQBDLSVCZ IFSPLVIFSPLV CVJMEQBDLOPEFKT NJZBHBXBIFSPLVCVJMEQBDL QFSMͦΕͧΕʹͭͷεΫϦϓτ͕ೖͬͯΔ
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͢Δํ͕ࣜ୯७ָͭͩͬͨ
Ωϡʔ˓ʔΫοΩϯάํࣜ • ʮ͜͜ͰSVCZ CVOEMFS͕ඞཁ ʹͳΓ·͕͢ŋŋŋ͋Β͔͡Ί࡞͓͖ͬͯ· ͨ͠ʯ %PDLFSͳΒ࡞Γஔ͖؆୯ɻ %PDLFSϨϙδτϦͰڞ༗ 0,
ΞΠσΞ ·ͩ • CVJMEQBDLతͳ%PDLFSJNBHFT – CVJMEQBDLͷEFUFDUͰڥΛఆ͠ – ͦͷڥʹదͨ͠อଘࡁΈίϯςφΛબ͠ – CVJMEQBDLͷSFMFBTFͷΑ͏ʹͦͷίϯς φʹܾΊΒΕͨૢ࡞Λ࣮ߦͤ͞Δ CVJMEQBDLͰϏϧυͨ͠
ίϯςφΛDPNNJUͯ͠ ࠶ར༻ɺͱ͔Ͱ͍͍͔
ͯͳΘ͚Ͱɺ·ͱΊ • %PDLFSΞϓϦέʔγϣϯͷϙʔλϏϦ ςΟΛߴΊΔ – ͭ#VJME0ODF 3VO"OZXIFSFͷ – ͏ͭ5IF'BDUPS"QQͳ • ޙऀͰɺίϯςφΛͲ͏༻ҙ͖͔͢ – Ωϡʔ˓ʔΫοΩϯάํࣜͰׂͱΑ͍
એ • ,"*;&/1MBUGPSN*ODΤϯδχΞื ूͯ͠·͢ • ΠϯϑϥࣗಈԽɺ*NNVUBCMFɺ%PDLFS ͱ͔͍͖͍ͬͯͨํɺ͓ͪͯ͠·͢