Slide 1

Slide 1 text

@yamitzky %PDLFSpMFΛ ૉૣ͘࡞Δ
 UJQTˍϥΠϒσϞ 2016/10/21 JXࣾ಺ษڧձ

Slide 2

Slide 2 text

w ࣗ෼͕%PDLFSpMFΛॻ͘ͱ͖ʹɺ
 Ͳ͏͍͏؀ڥͰॻ͍͍ͯΔ͔Λڞ༗ˍσϞ͠·͢ w ʮ͜͏͢Δͱ΋ͬͱޮ཰ྑ͍ΑʂʯͳͲ͋ͬͨΒ
 ϚαΧϦ͓ئ͍͠·͢ Today…

Slide 3

Slide 3 text

w ίϯςφܕͷԾ૝Խ؀ڥΛఏڙ͢Δ044 w %PDLFSpMFʹΑͬͯ%PDLFSΠϝʔδΛఆٛͰ͖Δ w Ϗϧυͨ͠%PDLFSΠϝʔδ͸%PDLFS3FHJTUSZͰެ։Ͱ͖ɺ
 ଞͷ؀ڥͰ΋࢖͑ΔΑ͏ʹڞ༗Ͱ͖Δ What is Docker? %PDLFSpMFΛॻ͍ͯɺ ΞϓϦέʔγϣϯΛ୭Ͱ΋࢖͑ΔΑ͏ʹ͠Α͏ʂ

Slide 4

Slide 4 text

w ࠷ۙࣗ෼͕ॻ͍ͨ%PDLFSpMF w EPDLFSDPNQPTF w BQFY w NFDBC w +6."/ w FUDʜ Recently… %PDLFSΠϝʔδΛڞ༗͢Ε͹
 AEPDLFSSVOA͚ͩͰ.BDͰ΋8JOEPXTͰ΋-JOVYͰ΋ ར༻Ͱ͖ΔΑ͏ʹʂ

Slide 5

Slide 5 text

#BE1SBDUJDF

Slide 6

Slide 6 text

Bad Practice to Write Dockerfile $ 5FSNJOBM

Slide 7

Slide 7 text

Bad Practice to Write Dockerfile $ vim Dockerfile 0QFOFEJUPS

Slide 8

Slide 8 text

Bad Practice to Write Dockerfile FROM alpine RUN apk add —no-cache curl RUN command to take long time RUN some typo command 8SJUF%PDLFSpMF

Slide 9

Slide 9 text

Bad Practice to Write Dockerfile $ docker build . #VJME%PDLFSJNBHFBOEXBJUʜ ... (wait for 10 min)

Slide 10

Slide 10 text

Bad Practice to Write Dockerfile $ docker build . &SSPS ... ... /bin/sh: typo: not found The command '/bin/sh -c typo' returned a non-zero code: 127

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

Bad Iteration $ build ☕ 8SJUF #VJME8BJU &SSPS

Slide 13

Slide 13 text

#FTU1SBDUJDF

Slide 14

Slide 14 text

Best Practice to Write Dockerfile 5NVYɺ7JNɺ4MJNFΛ࢖ͬͯ Ұߦͣͭ%PDLFSpMFΛ͔֬ΊΔ Ҏ্ɻ

Slide 15

Slide 15 text

%&.0

Slide 16

Slide 16 text

Best Practice to Write Dockerfile $ 3VOUNVYTQMJUQBOF $

Slide 17

Slide 17 text

Best Practice to Write Dockerfile $ vim Dockerfile $ docker run -it alpine /bin/sh &EJU%PDLFSpMF 3VOCBTFJNBHF`TTIFMM

Slide 18

Slide 18 text

Best Practice to Write Dockerfile / # 8SJUFKVTUPOFMJOF FROM alpine RUN apk add —no-cache curl 4IFMMJTSVOOJOH

Slide 19

Slide 19 text

Best Practice to Write Dockerfile / # apk add —no-cache curl &YFDVUFPOFMJOFWJB4-*.& FROM alpine RUN apk add —no-cache curl

Slide 20

Slide 20 text

w ʮWJNTMJNFʯͱ͔ʮFNBDTTMJNFʯͰݕࡧʂ w ΤσΟλʔͷબ୒෦෼ΛɺUNVYͷผQBOFʹૹΓɺ
 ࣮ߦͰ͖ΔϓϥάΠϯ
 Slime? IUUQTHJUIVCDPNKQBMBSEZWJNTMJNF

Slide 21

Slide 21 text

Best Practice to Write Dockerfile / # apk add —no-cache curl &YFDVUFPOFMJOFWJB4-*.& FROM alpine RUN apk add —no-cache curl

Slide 22

Slide 22 text

/ # some command Best Practice to Write Dockerfile / # apk add —no-cache curl … &YFDVUFPOFMJOFWJB4-*.& FROM alpine RUN apk add —no-cache curl RUN some command

Slide 23

Slide 23 text

/ # some command … Best Practice to Write Dockerfile / # apk add —no-cache curl … &YFDVUFPOFMJOFWJB4-*.& FROM alpine RUN apk add —no-cache curl RUN some command RUN other command / # other command

Slide 24

Slide 24 text

Finally… $ docker build . 4BWFCVJMEJU $ ... ... Successfully built

Slide 25

Slide 25 text

w UNVYͱWJNͱTMJNFΛ༻ҙ͢Δ w ҰߦͣͭTMJNFͰ࣮ߦ͔ͯ͠Βɺ࠷ޙʹAEPDLFSCVJMEA w λʔϛφϧʹ̍ߦͣͭίʔυΛૹΕΕ͹ԿͰ΋ྑ͍Αʂ
 ྫɿFNBDTTMJNFͱ͔JOUFMMJ+ͱ͔ Conclusion