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
VagrantとDockerで作る、ポータブル開発環境
Search
Tetsushi Hasesaku
May 08, 2018
Technology
2
810
VagrantとDockerで作る、ポータブル開発環境
Tetsushi Hasesaku
May 08, 2018
Tweet
Share
More Decks by Tetsushi Hasesaku
See All by Tetsushi Hasesaku
コードリファクタリングの手引き
hare8563
2
660
Dockerで作るRails実行環境
hare8563
0
310
Vagrantで作るRails開発環境構築
hare8563
0
300
Other Decks in Technology
See All in Technology
シフトライトなテスト活動を適切に行うことで、無理な開発をせず、過剰にテストせず、顧客をビックリさせないプロダクトを作り上げているお話 / Shift Right
nihonbuson
2
670
20240522 - 躍遷創作理念 @ PicCollage Workshop
dpys
0
290
UI State設計とテスト方針
rmakiyama
4
930
信頼されるためにやったこと、 やらなかったこと。/What we did to be trusted, What we did not do.
bitkey
PRO
0
880
PHPerのための計算量入門/Complexity101 for PHPer
hanhan1978
6
1.5k
サーバーなしでWordPress運用、できますよ。
sogaoh
PRO
0
170
20241220_S3 tablesの使い方を検証してみた
handy
4
850
Fabric 移行時の躓きポイントと対応策
ohata_ds
1
100
サイボウズフロントエンドエキスパートチームについて / FrontendExpert Team
cybozuinsideout
PRO
5
39k
20241218_今年はSLI/SLOの導入を頑張ってました!
zepprix
0
250
開発生産性向上! 育成を「改善」と捉えるエンジニア育成戦略
shoota
2
810
株式会社ログラス − エンジニア向け会社説明資料 / Loglass Comapany Deck for Engineer
loglass2019
3
33k
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Bash Introduction
62gerente
609
210k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
Making Projects Easy
brettharned
116
6k
Docker and Python
trallard
43
3.2k
How to Ace a Technical Interview
jacobian
276
23k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
Building Better People: How to give real-time feedback that sticks.
wjessup
366
19k
The Invisible Side of Design
smashingmag
299
50k
How to Think Like a Performance Engineer
csswizardry
22
1.3k
Building an army of robots
kneath
302
44k
Transcript
:EKVERX䛸(SGOIV䛷స䜛䚸䝫䞊 䝍䝤䝹㛤Ⓨ⎔ቃ ᰴᘧ♫䝸䝌䞊䝮ᬕబஂဴኈ
⮬ᕫ⤂ ᬕబஂဴኈ 䝝䝺䝃䜽䝔䝒䝅 ᰴᘧ♫䝸䝌䞊䝮ධ♫ᖺ┠ 䝃䞊䝞䝃䜲䝗䜶䞁䝆䝙䜰 ዲ䛝䛺ゝㄒ䛿' ㊃䛿䚸䝥䝻䜾䝷䝭䞁䜾䛸'+సᡂ
䜰䝆䜵䞁䝎 Ɣ ᪤Ꮡ䛾ၥ㢟Ⅼ Ɣ :EKVERX䛸䛿䠛(SGOIV䛸䛿# Ɣ 䛔᪉ Ɣ 䝯䝸䝑䝖䞉䝕䝯䝸䝑䝖 Ɣ
᭱⤊ⓗ䛺ᵓ⠏ Ɣ XMTW Ɣ 䜎䛸䜑
䛣䜣䛺䛣䛸䛳䛶䛒䜚䜎䛫䜣䛛䠛
䝁䞁䝟䜲䝷"6'." 1R64/" 䝣䝺䞊䝮䝽䞊䜽" 䝟䝑䜿䞊䝆" 㛤Ⓨ䛾๓ẁ㝵䛷䛴䜎䛵䛔䛶䛧䜎䛖
⮬ศ䛾⎔ቃ䛰䛸ື䛛䛺䛔
⎔ቃ⛣⾜䜈㛫䛜䛛䛛䜛
)'䛸䛛+')䛳䛶䜛䛛䜙䛭䜣䛺䛣 䛸䛺䛔䜘䛳䛶ᛮ䛳䛯䛡䛹䠊䠊䠊
䜔䛳䜁䜚䝁䞁䝋䞊䝹䛷䝂䝸䝂䝸䜔䛳䛶䛟䛾䛿㎞䛔䜘
䛚㔠䛾ၥ㢟䜒䛒䜛
䜒䛖䚸䛣䜣䛺䛣䛸䛷ᝎ䜎䛺䛟䛶䜒䛔䛔 䛷䛩
䛭䛾䛯䜑䛾䚸:EKVERX䛸(SGOIV䛷䛩
:EKVERX#
:EKVERX䛸䛿 Ɣ 䝩䝇䝖䝬䝅䞁䛛䜙䝀䝇䝖䝬 䝅䞁䜢౽䛻ᢅ䛖䛯䜑䛾 '0-䝒䞊䝹 Ɣ 䝁䞊䝗䝧䞊䝇䛷:1䛾タᐃ 䜢グ㏙ྍ⬟
(SGOIV#
(SGOIV䛸䛿 Ɣ 䝁䞁䝔䝘ᆺ௬⎔ቃ䜢ᐇ ⌧䛩䜛䛯䜑䛾䝒䞊䝹 Ɣ ᐇ⾜⎔ቃ䜢䝁䞊䝗䝧䞊䝇䛷 グ㘓䛧䛶䛚䛝䚸⮬ືⓗ䛻 ⎔ቃ䜢ᵓ⠏䛩䜛䛣䛸䛜䛷䛝 䜛
䝁䞁䝔䝘ᆺ௬⎔ቃ#
䝁䞁䝔䝘ᆺ௬⎔ቃ䛸䛿 Ɣ 䝩䝇䝖37 0MRY\ 䛸䜹䞊䝛䝹䜢ඹ᭷䛧䛯௬⎔ቃ ż 䜹䞊䝛䝹䜢ඹ᭷䛩䜛䛯䜑ྠ䛨37 0MRY\ ୖ䛷䛧䛛ື䛛䛫 䛺䛔
Ɣ ᚑ᮶䛾௬⎔ቃ 䝩䝇䝖ᆺ 䛸㐪䛔䚸௬䝬䝅䞁㒊ศ䜢䛯䛶䛺 䛔䛯䜑䜸䞊䝞䝦䝑䝗䛜ᑡ䛺䛔
䜲䝯䞊䝆 䝩䝇䝖䝬䝅䞁 䝩䝇䝖䝬䝅䞁 䝩䝇䝖ᆺ௬⎔ቃ 䝁䞁䝔䝘ᆺ௬⎔ቃ 䝩䝇䝖26 䝀䝇䝖26 䝀䝇䝖26 $33
$33 $33 $33 ௬䝬䝅䞁 ௬䝬䝅䞁 䝩䝇䝖26 䝁䞁䝔䝘 䝁䞁䝔䝘 $33 $33 $33 $33
⤖ᒁ䚸:EKVERX䛸(SGOIV䛳䛶䛾䛿ఱ 䛰䜘
:EKVERXĺ:1䜢⡆༢䛻ᵓ⠏䛩䜛䛯 䜑䛾䝒䞊䝹 (SGOIVĺ⎔ቃ䛤䛸䜰䝥䝸䜿䞊䝅䝵䞁 䜢ᐇ⾜䛩䜛䛯䜑䛾䝒䞊䝹
䛔᪉
:EKVERX䛸(SGOIV䛾⤌䜏ྜ䜟䛫 䝩䝇䝖䝬䝅䞁 :LQGRZV0DF/LQX[ 9LUWXDO%R[௬䝬䝅䞁 /LQX[ 'RFNHU䝁䞁䝔䝘 'RFNHU䝁䞁䝔䝘 䝍䞊䝭䝘䝹 䜶䝕䜱䝍
:EKVERX䛸(SGOIV䛾⤌䜏ྜ䜟䛫 䝩䝇䝖䝬䝅䞁 :LQGRZV0DF/LQX[ 9LUWXDO%R[௬䝬䝅䞁 /LQX[ 'RFNHU䝁䞁䝔䝘 'RFNHU䝁䞁䝔䝘 䝍䞊䝭䝘䝹 䜶䝕䜱䝍
䛣䛾㒊ศ䜢*LW⟶⌮䛧䚸䛹䛾⎔ቃ䛷䜒ඹ᭷䛷䛝䜛䜘䛖䛻䛩䜛
:EKVERX䝉䝑䝖䜰䝑䝥 9DJUDQW)LOH䛾సᡂ &/,䛛䜙90సᡂ 90䜈䛾66+䚸䝕䜱䝺䜽䝖䝸ඹ᭷䛺䛹䛷䜰䝥䝸䜿䞊䝅䝵䞁䛾㛤Ⓨ
:EKVERX*MPI 90䛾ᵓᡂ䜢グ㏙䛧䛯䚸䝇䜽䝸䝥䝖 9$*5$17),/(B$3,B9(56,21 9DJUDQWFRQILJXUH 9$*5$17),/(B$3,B9(56,21 GR_FRQILJ_ FRQILJYPER[ FHQWRV
FRQILJYPV\QFHGBIROGHUYDJUDQWW\SHYLUWXDOER[ FRQILJYPQHWZRUNIRUZDUGHGBSRUWJXHVWKRVWLGKWWS FRQILJYPSURYLGHUYLUWXDOER[GR_Y_ YQDPH YPBQDPH YFSXV YPHPRU\ HQG HQG ᵓ⠏䛾䝧䞊䝇䛻䛺䜛⎔ቃ ER[ ᵓ⠏䛩䜛䝬䝅䞁䛾ᵓᡂ
:EKVERX*MPI Ɣ %R[ ż సᡂ䛩䜛90䛾䝧䞊䝇䛸䛺䜛䜒䛾 ż 9DJUDQW)LOH䛻᭩䛝㎸䜐䛸䚸⮬ືⓗ䛻YDJUDQWER[HV䛛 䜙䝎䜴䞁䝻䞊䝗䛧䛶ᵓ⠏䛷䛝䜛 Ɣ
3URYLGHU ż 90ᵓ⠏䛾ᵓ⠏ඛ ż ᇶᮏ䛿9LUWXDO%R[䛰䛜䚸90:DUH䜔(&䛺䛹䜢ᣦᐃ䛩 䜛䛣䛸䜒ྍ⬟
'0-䛛䜙:1సᡂ 䝁䝬䞁䝗䜢ᐇ⾜䛧䛶䚸90䛾᧯స䜢⾜䛖 YDJUDQWXS 90䛾సᡂ䞉㉳ື YDJUDQWKDOW 90䛾Ṇ YDJUDQWUHORDG 90䛾㉳ື YDJUDQWGHVWUR\
సᡂ䛧䛯90䛾ᾘཤ YDJUDQWVVK 90䜈䛾66+᥋⥆
䜰䝥䝸䜿䞊䝅䝵䞁㛤Ⓨ VVK䛷䝸䝰䞊䝖᥋⥆ 9LUWXDO%R[䛾ඹ᭷ᶵ⬟䛷⦅㞟
(SGOIV䝉䝑䝖䜰䝑䝥 'RFNHU)LOH䜢సᡂ 'RFNHU䜲䝯䞊䝆䜢䝡䝹䝗 'RFNHU䝁䞁䝔䝘䜢㉳ື䛧䚸䜰䝥䝸䜿䞊䝅䝵䞁ᐇ⾜
(SGOIV*MPI ⎔ቃᵓ⠏䛾䛯䜑䛾ᡭ㡰䜢䜎䛸䜑䛯䝇䜽䝸䝥䝖 )520FHQWRV $SSOLFDWLRQ (19XVHUXVHU (19SDVVZRUGSDVVZUG LQVWDOOVXGR 581\XPLQVWDOOVXGR\ 86(5
581XVHUDGGKRPHGLUKRPH^XVHU`FUHDWHKRPHVKHOOELQEDVK^XVHU` 581HFKR^XVHU`^SDVVZRUG` _FKSDVVZG 581HFKR^XVHU`$// $// 123$66:'$// !!HWFVXGRHUVG^XVHU` 86(5^XVHU` (19+20(KRPH^XVHU` &0'SLQJF 䝧䞊䝇䜲䝯䞊䝆タᐃ ᐇ⾜⎔ቃኚᩘタᐃ ᐇ⾜䝁䝬䞁䝗 ㉳ືᐇ⾜䝁䝬䞁䝗
(SGOIV*MPI )520LPDJH! 䝧䞊䝇䛻䛺䜛䜲䝯䞊䝆䜢タᐃ 86(5XVHU! ᐇ⾜䝴䞊䝄䛾ษ䜚᭰䛘 (19NH\!YDOXH! 䜲䝯䞊䝆䝡䝹䝗䛻⏝䛩䜛⎔ቃኚᩘ䜢タᐃ 581FRPPDQG! 䜲䝯䞊䝆䝡䝹䝗䛻ᐇ⾜䛩䜛䝁䝬䞁䝗䜢タᐃ
&0'FRPPDQG! 䝁䞁䝔䝘సᡂ䛻ᐇ⾜䛩䜛䝁䝬䞁䝗䜢タᐃ &23<VUF!GHVW! VUF!䛛䜙GHVW!䛻䝣䜯䜲䝹䜢䝁䝢䞊䛩䜛 $''VUF!GHVW! VUF!䛛䜙GHVW!䛻䝣䜯䜲䝹䜢䝁䝢䞊䛩䜛 WDU䝣䜯䜲䝹䛾ᒎ㛤䜔䚸䝸䝰䞊䝖 85/䛛䜙䛾ྲྀᚓ 䜢⾜䛔䛯䛔ሙྜ䛾䜏⏝䛩䜛
(SGOIV䜲䝯䞊䝆 Ɣ 䝁䞁䝔䝘䜢ᐇ⾜䛩䜛䛸䛝䛻ᚲせ䛸䛺䜛䝣䜯䜲䝹䝅䝇䝔䝮 Ɣ 'RFNHU)LOH䛛䜙䝡䝹䝗䛥䜜䜛 䝧䞊䝇䜲䝯䞊䝆 (19 581 &23<
581 581 &0' ᭱⤊ⓗ䛺'RFNHU䜲䝯䞊䝆 'RFNHU)LOH 䝁䞁䝔䝘స ᡂ
(SGOIV䝁䞁䝔䝘䛾㉳ື 䝺䝆䝇䝖䝸 GRFNHUUXQ 䝻䞊䜹䝹䛾䜲䝯䞊䝆 䝸䝰䞊䝖䛾䜲䝯䞊䝆 GRFNHU䜶䞁䝆䞁 䝁䞁䝔䝘 䝸䝰䞊䝖䛛䜙SXOO䛧䛶సᡂ
(SGOIV䛾䝁䝬䞁䝗 GRFNHUEXLOG GRFNHU䜲䝯䞊䝆䛾䝡䝹䝗 GRFNHUUXQ GRFNHU䝁䞁䝔䝘䛾㉳ື GRFNHUVWDUW Ṇ≧ែ䛾䝁䞁䝔䝘䛾㉳ື GRFNHUVWRS GRFNHU䝁䞁䝔䝘䛾Ṇ
GRFNHUUP GRFNHU䝁䞁䝔䝘䛾๐㝖
䝯䝸䝑䝖䞉䝕䝯䝸䝑䝖
:EKVERX䛸(SGOIV䜢䛖䝯䝸䝑䝖 Ɣ 㛤Ⓨ⎔ቃ䛾䝫䞊䝍䝡䝸䝔䜱ᛶ䛜㧗䜎䜛 ż 䛹䛣䛾䚸ㄡ䛾䚸䛹䜣䛺⎔ቃ䛷䜒ᵓ⠏ྍ⬟ Ɣ 㛤Ⓨ⎔ቃ䛾䝞䞊䝆䝵䞁⟶⌮䛜ྍ⬟ ż :EKVERX*MPI(SGOIV*MPI䜢+MX䛷⟶⌮ Ɣ
䝕䜱䝺䜽䝖䝸ඹ᭷䛷䝩䝇䝖䛸㛤Ⓨ⎔ቃ㛫䛷ຠ⋡ⓗ䛻సᴗ䛜ྍ ⬟
+MX䛷⟶⌮䛧䛶䜛䛯䜑䚸ᵓ⠏䛜⡆༢ *LW䛛䜙FORQH䛩䜜 䜀䛩䛠䛻స䜜䜛
ဨ䛾⎔ቃ䛜୍⥴䛺䛾䛷䚸⮬ศ䛰䛡ື䛛䛺䛔䛣䛸䛿䛺䛔
:MVXYEP&S\䛸:EKVERX䛥䛘ධ䜜䜜䜀䛔䛔
䝁䞁䝋䞊䝹䜢䜔䜑䛶䚸ዲ䛝䛺䜶䝕䜱䝍䛜䛘䜛
ᙜ↛䚸↓ᩱ )5((
:EKVERX䛸(SGOIV䜢䛖䝕䝯䝸䝑䝖 Ɣ 䝁䞊䝗సᡂ䛻䛛䛛䜛Ꮫ⩦䝁䝇䝖 ż ≉䛻䚸䝛䝑䝖䝽䞊䜽⣔䛾▱㆑䛜䛒䜛⛬ᗘᚲせ Ɣ 䝩䝇䝖䝬䝅䞁䛤䛸䛾⣽䛛䛺ᕪ␗ ż ඹ᭷᪉ἲ Ŷ
6W]RG:MVXYEP&S\71& Ɣ 」㞧䛺ᵓᡂ䛜䜔䜚䛻䛟䛔
᭱⤊ⓗ䛺ᵓᡂ
᭱⤊ⓗ䛺ᵓᡂ 䝩䝇䝖䝬䝅䞁 PDF26 䝀䝇䝖䝬䝅䞁 &HQW26 'RFNHU䝁䞁䝔䝘 䜰䝥䝸䜿䞊䝅䝵䞁 'RFNHU䝁䞁䝔䝘
䜰䝥䝸䜿䞊䝅䝵䞁 'RFNHU䝁䞁䝔䝘 '%䝃䞊䝞 'RFNHU䝁䞁䝔䝘 5HGLV䝃䞊䝞 KWWSORFDOKRVW 䝫䞊䝖䝣䜷䝽䞊䝗 ඹ᭷䝕䜱䝺䜽䝖䝸 YROXPH䝬䜴䞁䝖
8MTW
䝕䜱䝺䜽䝖䝸ඹ᭷䛩䜛䛾䛿䛔䛔䛡䛹䚸 RSHICQSHYPIW䛸䛛䛿ඹ᭷䛧䛺䛟䛶 䛔䛔䛺
WYHSQSYRXFMRH WVG" HIWX"
QSYRX䛾FMRH䜸䝥䝅䝵䞁 Ɣ WVG"䝕䜱䝺䜽䝖䝸䜢 HIWX"䝕䜱䝺䜽䝖䝸䛻䝬䜴䞁䝖䛩䜛 Ɣ ඹ᭷䝕䜱䝺䜽䝖䝸ෆ䛾RSHICQSHYPIW䛸䛛䜢䝀䝇䝖37ෆ䛾䝕䜱 䝺䜽䝖䝸䛻䝬䜴䞁䝖䛩䜜䜀䚸ඹ᭷䛥䜜䛺䛔 Ɣ 92-<䝗䝯䜲䞁䝋䜿䝑䝖䛺䛹䚸:MVXYEP&S\䛾ඹ᭷㓄ୗ䛻స䜜䛺䛔 䜒䛾䛻ᑐ䛧䛶䜒䛘䜛
䝩䝇䝖䝬䝅䞁 ඹ᭷ 䝀䝇䝖䝬䝅䞁 QSYRX䛾FMRH䜸䝥䝅䝵䞁 QRGHBPRGXOHV PRXQW䛧䛶䛔䜛䛯䜑ᐇయ 䛿ู YLUWXDOER[䛾ඹ᭷ᶵ ⬟䛷ඹ᭷
0MRY\䛾䜰䝥䝸䛿䛘䜛䛡䛹䚸䛳䛶 䜛䛾䛜;MRHS[W䛾䝞䜲䝘䝸䛺䜣䛰 䜘䛽
;MRI ;MRI-W2SXER)QYPEXSV 䛸䛿# Ɣ 437-<⎔ቃ䛷;MRHS[W䜰䝥䝸䜿䞊䝅䝵䞁䜢㉳ື䛥䛫䜛䛯䜑 䛾䝒䞊䝹 ż 䛒䛟䜎䛷䜶䝭䝳䝺䞊䝍䛷䛿䛺䛟䚸ᛶ䛾䛒䜛䝺䜲䝲䞊䜢 ᥦ౪䛩䜛䛰䛡 Ɣ
䛩䜉䛶䛾;MRHS[W䜰䝥䝸䜿䞊䝅䝵䞁䛜ື䛟䜟䛡䛷䛿䛺䛔䛯 䜑ὀព
䜎䛸䜑
䜎䛸䜑 Ɣ :EKVERX䛿௬䝬䝅䞁䜢స䜛䛯䜑䛾䝒䞊䝹䚸(SGOIV䛿䜰䝥䝸䜿䞊䝅䝵䞁 䜢⎔ቃ䛤䛸ᐇ⾜䛩䜛䛯䜑䛾䝒䞊䝹 Ɣ :EKVERX*MPI(SGOIV*MPI䛸䛔䛳䛯䝔䜻䝇䝖䝧䞊䝇䛷⎔ቃ䜢ᐃ⩏䛧䛶䚸䛭 䜜䜢+MX䛷⟶⌮䛧䛶䛖 Ɣ :EKVERX(SGOIV䜢䛖䝯䝸䝑䝖䛿䚸⎔ቃ䛾䝫䞊䝍䝡䝸䝔䜱ᛶ䚸䝞䞊䝆䝵䞁
⟶⌮䚸సᴗຠ⋡䛸䛔䛳䛯䛣䛸䛜䛒䜚䚸䛔䜎䜎䛷ᢪ䛘䛶䛔䛯ၥ㢟䜢ゎỴ 䛩䜛䛣䛸䛜ฟ᮶䜛 Ɣ 㠃䚸୍䛛䜙స䜛䛻䛿Ꮫ⩦䝁䝇䝖䛜㧗䛔䛯䜑䛒䜛⛬ᗘ㛫䜢䛸䜛ᚲせ 䛜䛒䜛
䛤Ύ⫈䛒䜚䛜䛸䛖䛤䛦䛔䜎䛧䛯