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
650
Dockerで作るRails実行環境
hare8563
0
310
Vagrantで作るRails開発環境構築
hare8563
0
300
Other Decks in Technology
See All in Technology
3次元点群データ「VIRTUAL SHIZUOKA』のオープンデータ化による恩恵と協働の未来/FOSS4G Japan 2024
kazz24s
0
130
AWS Lambdaと歩んだ“サーバーレス”と今後 #lambda_10years
yoshidashingo
1
110
利きプロセススケジューラ
sat
PRO
4
2.6k
Terraform Stacks入門 #HashiTalks
msato
0
270
What to do after `laravel new`
mattstauffer
0
140
徹底比較!HA Kubernetes ClusterにおけるControl Plane LoadBalancerの選択肢
logica0419
2
140
Team Dynamicsを目指すウイングアーク1stのQAチーム
sadonosake
1
210
隣接領域をBeyondするFinatextのエンジニア組織設計 / beyond-engineering-areas
stajima
1
230
マイベストのデータ基盤の現在と未来 / mybest-data-infra-asis-tobe
mybestinc
2
1.9k
Railsで4GBのデカ動画ファイルのアップロードと配信、どう実現する?
asflash8
1
220
社内で最大の技術的負債のリファクタリングに取り組んだお話し
kidooonn
1
470
インフラとバックエンドとフロントエンドをくまなく調べて遅いアプリを早くした件
tubone24
1
260
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
Embracing the Ebb and Flow
colly
84
4.5k
Building Your Own Lightsaber
phodgson
102
6.1k
Into the Great Unknown - MozCon
thekraken
32
1.5k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
The Cost Of JavaScript in 2023
addyosmani
45
6.7k
How STYLIGHT went responsive
nonsquared
95
5.2k
KATA
mclloyd
29
14k
Testing 201, or: Great Expectations
jmmastey
38
7.1k
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䜢䛖䝯䝸䝑䝖䛿䚸⎔ቃ䛾䝫䞊䝍䝡䝸䝔䜱ᛶ䚸䝞䞊䝆䝵䞁
⟶⌮䚸సᴗຠ⋡䛸䛔䛳䛯䛣䛸䛜䛒䜚䚸䛔䜎䜎䛷ᢪ䛘䛶䛔䛯ၥ㢟䜢ゎỴ 䛩䜛䛣䛸䛜ฟ᮶䜛 Ɣ 㠃䚸୍䛛䜙స䜛䛻䛿Ꮫ⩦䝁䝇䝖䛜㧗䛔䛯䜑䛒䜛⛬ᗘ㛫䜢䛸䜛ᚲせ 䛜䛒䜛
䛤Ύ⫈䛒䜚䛜䛸䛖䛤䛦䛔䜎䛧䛯