dockerignore talk
by
orisano
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
dockerignoreͷ Container Build Meetup #2 #container_build @orisano
Slide 2
Slide 2 text
docker buildͷΛ͠·͢
Slide 3
Slide 3 text
%PDLFS$-* EPDLFSE
Slide 4
Slide 4 text
%PDLFS$-* EPDLFSE $ docker build .
Slide 5
Slide 5 text
%PDLFS$-* EPDLFSE $ docker build [build context]
Slide 6
Slide 6 text
%PDLFS$-* EPDLFSE $ docker build . 1. build contextΛtarͰarchive͢Δ
Slide 7
Slide 7 text
%PDLFS$-* EPDLFSE $ docker build . 2. dockerdʹରͯ͠POST͢Δ
Slide 8
Slide 8 text
%PDLFS$-* EPDLFSE $ docker build . 3. ड͚औͬͨtarΛల։
Slide 9
Slide 9 text
%PDLFS$-* EPDLFSE $ docker build . 4. DockerfileͷղऍΛ͢Δ
Slide 10
Slide 10 text
%PDLFS$-* EPDLFSE $ docker build . 5. εςʔδ͝ͱʹ࣮ߦ
Slide 11
Slide 11 text
%PDLFS$-* EPDLFSE $ docker build . 6. InstructionΛ࣮ߦ
Slide 12
Slide 12 text
%PDLFS$-* EPDLFSE $ docker build . 7. Instructionຖʹimage͕Ͱ͖Δ
Slide 13
Slide 13 text
%PDLFS$-* EPDLFSE $ docker build . 8.ऴΘͬͨΒ௨
Slide 14
Slide 14 text
ෆཁͳϑΝΠϧ build contextʹؚΊͨ͘ͳ͍
Slide 15
Slide 15 text
ͳͥʁ
Slide 16
Slide 16 text
1. Archiveͷίετ 2. సૹͷίετ 3. cacheͷͨΊ
Slide 17
Slide 17 text
1. Archiveͷίετ 2. సૹͷίετ 3. cacheͷͨΊ
Slide 18
Slide 18 text
େྔͷϑΝΠϧΛ ΞʔΧΠϒ͢Δͷॏ͍ (node_modulesͳͲ)
Slide 19
Slide 19 text
ΫϥΠΞϯτଆͰߦ͏͕ ݱঢ়̎ͭͷ࣮͕͋Δ
Slide 20
Slide 20 text
docker/cli (Go) docker/docker-py (Python)
Slide 21
Slide 21 text
docker/cli (Go) dockerίϚϯυ
Slide 22
Slide 22 text
docker/docker-py (Python)
Slide 23
Slide 23 text
Docker Engine APIΛ Python͔Β͏ͨΊͷͷ docker/compose ͕͍ͬͯΔ ͳΜ͔͍
Slide 24
Slide 24 text
AntiVirusͳͲ͕ I/OΛhook͍ͯ͠Δ߹ I/Oίετ͕͍
Slide 25
Slide 25 text
1. Archiveͷίετ 2. సૹͷίετ 3. cacheͷͨΊ
Slide 26
Slide 26 text
େ͖ͳϑΝΠϧΛૹΔͷ େม
Slide 27
Slide 27 text
1. Archiveͷίετ 2. సૹͷίετ 3. cacheͷͨΊ
Slide 28
Slide 28 text
COPYͰ ҙਤͯ͠ͳ͍ϑΝΠϧ͕ ରʹͳ͍ͬͯΔͱ cache͕յΕͯ࠷ѱ
Slide 29
Slide 29 text
build contextʹ ؚΊ͍͚ͯͳ͍ϑΝΠϧ ͕͋Δ
Slide 30
Slide 30 text
1. ೝূใ 2. ΞʔΩςΫνϟґଘ
Slide 31
Slide 31 text
1. ೝূใ 2. ΞʔΩςΫνϟґଘ
Slide 32
Slide 32 text
ݴΘ͕ͣͳ .envͳͲ
Slide 33
Slide 33 text
.git͕ةݥͳ߹͋Δ personal tokenͰͷ git cloneΛ͍ͯ͠ΔͳͲ
Slide 34
Slide 34 text
1. ೝূใ 2. ΞʔΩςΫνϟґଘ
Slide 35
Slide 35 text
package managerʹΑΔ͕ ͦͷڥ͚ͷbuildࡁΈ όΠφϦ͕͓͍ͯ͋Δ͜ͱ͕ (npm)
Slide 36
Slide 36 text
Ҏ্ͷΛղܾ͢ΔͨΊʹ dockerignore Λ͏
Slide 37
Slide 37 text
dockerignore
Slide 38
Slide 38 text
ޙΖʹॻ͍ͯ͋Δ pattern͕༏ઌ͞ΕΔ ઌ಄ʹ!Λ͚ͭΔͱ൱ఆͰ͖Δ
Slide 39
Slide 39 text
͑Δදه foo/* foo/** foo/?
Slide 40
Slide 40 text
෦Ͱ ਖ਼نදݱʹม͍ͯ͠Δ
Slide 41
Slide 41 text
ਖ਼نදݱͳΒΘ͔Δ ͱ͍͏ਓ͚ʹ github.com/orisano/dire
Slide 42
Slide 42 text
ରԠ͢Δਖ਼نදݱΛग़ྗ
Slide 43
Slide 43 text
Ͳ͏࣮ͬͯݱ͍ͯ͠Δ͔
Slide 44
Slide 44 text
%PDLFS$-* EPDLFSE $ docker build . 1. build contextΛtarͰarchive͢Δ
Slide 45
Slide 45 text
%PDLFS$-* EPDLFSE $ docker build . 0. build contextͷҎԼͷϑΝΠϧ͕readՄೳ͔֬ೝ (͜͜dockerignoreΛߟྀ͞ΕΔ)
Slide 46
Slide 46 text
%PDLFS$-* EPDLFSE $ docker build . 0.5. directoryΛtraverse͠ͳ͕Βdockerignoreʹ Ϛον͠ͳ͍ϑΝΠϧΛtarʹՃ͍ͯ͘͠
Slide 47
Slide 47 text
%PDLFS$-* EPDLFSE $ docker build . 1. build contextΛtarͰarchive͢Δ
Slide 48
Slide 48 text
༨ஊ
Slide 49
Slide 49 text
%PDLFS$-* EPDLFSE $ docker build . 0. build contextͷҎԼͷϑΝΠϧ͕readՄೳ͔֬ೝ (͜͜dockerignoreΛߟྀ͞ΕΔ)
Slide 50
Slide 50 text
ϑΝΠϧdockerignore͕ ίϯύΠϧ͞ΕΔΑ͏ʹ ͳ͍ͬͯͨ
Slide 51
Slide 51 text
docker/cli/pull/1577 Ͱमਖ਼͞Ε Docker 19.03 ͔ΒೖΓ·͢
Slide 52
Slide 52 text
ͪΐͬͱಛघͳྫ
Slide 53
Slide 53 text
monorepoͰ subsystemؒͷґଘ͕͋Δ ߹
Slide 54
Slide 54 text
େຊΛbuild contextʹ ͠ͳ͍ͱ͍͚ͳ͘ͳΔ
Slide 55
Slide 55 text
build context͕Ͱ͔͘ͳΔ
Slide 56
Slide 56 text
dockerignoreͰղܾ! ͢Δ͜ͱͰ͖ͳ͍
Slide 57
Slide 57 text
dockerignorebuildຖʹ ϑΝΠϧΛࢦఆͰ͖ͳ͍
Slide 58
Slide 58 text
subsystemຖʹ dockerignoreΛ࡞Γ buildͷͨͼʹ dockerignoreΛࣗಈੜ͢Δ Ξϓϩʔν͕༗ޮ
Slide 59
Slide 59 text
github.com/orisano/dignore
Slide 60
Slide 60 text
Α͋͘Δ
Slide 61
Slide 61 text
gitignoreͱdockerignore ͕ ΄΅ҰॹʹͳΔ
Slide 62
Slide 62 text
ͦ͏͍͏߹ʹ dockerignore ͍Βͳ͘ͳΔํ๏͕͋Δ
Slide 63
Slide 63 text
git archiveͬͯ ίϚϯυͬͨ͜ͱ͋Γ·͔͢
Slide 64
Slide 64 text
repositoryΛtarʹͰ͖Δ ίϚϯυ
Slide 65
Slide 65 text
tarʹ͢ΕbuildͰ͖ΔͷͰ
Slide 66
Slide 66 text
git archive HEAD | docker build -