Slide 1

Slide 1 text

BuildKitΛ࢖ͬͯΈΑ͏ʂ Presented by @_inductor_

Slide 2

Slide 2 text

Who am I? • inductor(@_inductor_) • Cloud(AWS)/DevOps Engineer
 @ Start Today Technologies, Inc. • Admin @ Πϯϑϥษڧձ • DevOps / Containeriation / CI/CD Pipelines • Japan Container Daysελοϑ΍ͬͯ·͢

Slide 3

Slide 3 text

͋ͱʹͳͬͯؾ͍ͮͨͷͰ͕͢ɺલճͷ MeetupͰਢా͞Μ͕࿩ͨ͠಺༰ͷ΄΅
 ϦόΠζʢ͔͠΋ΏΔ;Θ൛ʣͰͨ͠ʼʻ LTͳͷͰ·ͬͨΓௌ͍͍ͯͩ͘͞

Slide 4

Slide 4 text

What is BuildKit?

Slide 5

Slide 5 text

BuildKit • Moby project͕ओମͱͳͬͯ։ൃ͍ͯ͠ΔOSS • DockerfileΛΠϝʔδʹbuild͢ΔͨΊͷϏϧυπʔϧ • GoݴޠͰ։ൃ͞Ε͍ͯΔ • ݱࡏ͸ϓϨϏϡʔͷஈ֊

Slide 6

Slide 6 text

BuildKitͷ͍͢͝ͱ͜Ζ • ฒྻ࣮ߦ͕͔͍͜͠ • Multi-stage build͕ฒྻ࣮ߦ͞ΕΔʢʂʂʂʣ • Ωϟογϡ͕͔͍͜͠ • ෳ਺ΞʔΩςΫνϟ޲͚ͷϏϧυ͕࡞ΕΔ • ࠓ·ͰͷDockerfile΋ී௨ʹಈ͘(͸ͣ) • ৄ͘͠͸ਢా͞ΜͷεϥΠυ΍ެࣜϦϙδτϦࢀর

Slide 7

Slide 7 text

Multi-stage buildΛ
 ஌ͬͯΔΑͬͯਓ
 खڍ͍͛ͯͩ͘͞ʂ

Slide 8

Slide 8 text

Multi-stage buildΛ
 ࢖ͬͯΔΑͬͯਓ
 खڍ͍͛ͯͩ͘͞ʂ

Slide 9

Slide 9 text

Multi-stage build? • ಉҰDockerfile಺Ͱෳ਺ͷΠϝʔδΛ࡞੒Ͱ͖Δػೳ • ΋ͬͱ͍͏ͱ్தͰίϯύΠϧͨ͠ϑΝΠϧ͚ͩΛϝΠϯ ͷΠϝʔδʹࡌͤͨΓͰ͖Δ(ίϯύΠϧݴޠͰهड़͞Εͨ ϓϩδΣΫτ(ྫ͑͹goͱ͔)ͩͱ࣮ߦϑΝΠϧ΍Ұ෦ͷઃ ఆϑΝΠϧҎ֎ɺ࣮ߦ؀ڥͰ͸͍Βͳ͍ΑͶʁͱ͔) • Ϗϧυͷ݁ՌͰ͖ͨ੒Ռ෺͚ͩΛίϯςφΠϝʔδͱͯ͠ ࡌͤΔ͜ͱ͕ग़དྷΔ • ෆཁϑΝΠϧ෼͚ͩαΠζ͕ݮΔʂ

Slide 10

Slide 10 text

DockerͰBuildKit • Docker CEͰࢼ͢৔߹ • Nightly·ͨ͸TestνϟϯωϧͰCEΛೖΕΔ
 (چEdgeνϟϯωϧ) • MacɺWindowsͷ৔߹͸EdgeΛ࢖͏ • ؀ڥม਺ʹ `export DOCKER_BUILDKIT=1` Ληοτ

Slide 11

Slide 11 text

σϞ
 (͕࣌ؒͳ͔ͬͨΒεΩοϓ)

Slide 12

Slide 12 text

खݩͰࢼͨ݁͠Ռ firebase cliͱhugoίϚϯυΛೖΕΔDockerfile

Slide 13

Slide 13 text

खݩͰࢼͨ݁͠Ռ GoݴޠͰhello worldίϯύΠϧͯ͠ೖΕΔDockerfile

Slide 14

Slide 14 text

·ͱΊ • ฒྻͰ࣮ߦ͢ΔϏϧυ͕Ұഋ͋ΔͳΒ࢖ͬͯΈ·͠ΐ͏ʂ • ࠓ·Ͱ͸αΠζݮ͚ͩͩͬͨMulti-stage buildͷϝϦοτ͕
 ଎౓ʹ΋Өڹͯ͘͠ΔΑ͏ʹͳΔ • ଎͘ͳΔ༨஍ͷ͋ΔDockerfile͕͋Γͦ͏ͩͬͨΒ
 ࠓޙͷͨΊʹಋೖͯ͠ΈͨΒ͍͍ͷͰ͸ʂ • Docker composeͰ͸·ͩ࢖͑ͳ͍ • K8sͰ࢖͏৔߹͸KnativeͷBuild TemplatesʹBuildKitΛ௥Ճ͢Δ
 ඞཁ͕͋ΔΒ͍͠

Slide 15

Slide 15 text

͓ΘΓ