Upgrade to Pro — share decks privately, control downloads, hide ads and more …

dockerignore talk

dockerignore talk

orisano

May 13, 2019
Tweet

More Decks by orisano

Other Decks in Programming

Transcript

  1. dockerignoreͷ࿩
    Container Build Meetup #2 #container_build
    @orisano

    View Slide

  2. docker buildͷ࿩Λ͠·͢

    View Slide

  3. %PDLFS$-* EPDLFSE

    View Slide

  4. %PDLFS$-* EPDLFSE
    $ docker build .

    View Slide

  5. %PDLFS$-* EPDLFSE
    $ docker build [build context]

    View Slide

  6. %PDLFS$-* EPDLFSE
    $ docker build .
    1. build contextΛtarͰarchive͢Δ

    View Slide

  7. %PDLFS$-* EPDLFSE
    $ docker build .
    2. dockerdʹରͯ͠POST͢Δ

    View Slide

  8. %PDLFS$-* EPDLFSE
    $ docker build .
    3. ड͚औͬͨtarΛల։

    View Slide

  9. %PDLFS$-* EPDLFSE
    $ docker build .
    4. DockerfileͷղऍΛ͢Δ

    View Slide

  10. %PDLFS$-* EPDLFSE
    $ docker build .
    5. εςʔδ͝ͱʹ࣮ߦ

    View Slide

  11. %PDLFS$-* EPDLFSE
    $ docker build .
    6. InstructionΛ࣮ߦ

    View Slide

  12. %PDLFS$-* EPDLFSE
    $ docker build .
    7. Instructionຖʹimage͕Ͱ͖Δ

    View Slide

  13. %PDLFS$-* EPDLFSE
    $ docker build .
    8.ऴΘͬͨΒ௨஌

    View Slide

  14. ෆཁͳϑΝΠϧ͸
    build contextʹؚΊͨ͘ͳ͍

    View Slide

  15. ͳͥʁ

    View Slide

  16. 1. Archiveͷίετ
    2. సૹͷίετ
    3. cacheͷͨΊ

    View Slide

  17. 1. Archiveͷίετ
    2. సૹͷίετ
    3. cacheͷͨΊ

    View Slide

  18. େྔͷϑΝΠϧΛ
    ΞʔΧΠϒ͢Δͷ͸ॏ͍
    (node_modulesͳͲ)

    View Slide

  19. ΫϥΠΞϯτଆͰߦ͏͕
    ݱঢ়̎ͭͷ࣮૷͕͋Δ

    View Slide

  20. docker/cli (Go)
    docker/docker-py (Python)

    View Slide

  21. docker/cli (Go)
    dockerίϚϯυ

    View Slide

  22. docker/docker-py (Python)

    View Slide

  23. Docker Engine APIΛ
    Python͔Β࢖͏ͨΊͷ΋ͷ
    docker/compose
    ͕࢖͍ͬͯΔ
    ͳΜ͔஗͍

    View Slide

  24. AntiVirusͳͲ͕
    I/OΛhook͍ͯ͠Δ৔߹
    I/Oίετ͕΍͹͍

    View Slide

  25. 1. Archiveͷίετ
    2. సૹͷίετ
    3. cacheͷͨΊ

    View Slide

  26. େ͖ͳϑΝΠϧΛૹΔͷ͸
    େม

    View Slide

  27. 1. Archiveͷίετ
    2. సૹͷίετ
    3. cacheͷͨΊ

    View Slide

  28. COPYͰ
    ҙਤͯ͠ͳ͍ϑΝΠϧ͕
    ର৅ʹͳ͍ͬͯΔͱ
    cache͕յΕͯ࠷ѱ

    View Slide

  29. build contextʹ
    ؚΊͯ͸͍͚ͳ͍ϑΝΠϧ
    ͕͋Δ

    View Slide

  30. 1. ೝূ৘ใ
    2. ΞʔΩςΫνϟґଘ

    View Slide

  31. 1. ೝূ৘ใ
    2. ΞʔΩςΫνϟґଘ

    View Slide

  32. ݴΘͣ΋͕ͳ
    .envͳͲ

    View Slide

  33. .git͕ةݥͳ৔߹΋͋Δ
    personal tokenͰͷ
    git cloneΛ͍ͯ͠ΔͳͲ

    View Slide

  34. 1. ೝূ৘ใ
    2. ΞʔΩςΫνϟґଘ

    View Slide

  35. package managerʹΑΔ͕
    ͦͷ؀ڥ޲͚ͷbuildࡁΈ
    όΠφϦ͕͓͍ͯ͋Δ͜ͱ͕
    (npm)

    View Slide

  36. Ҏ্ͷ໰୊Λղܾ͢ΔͨΊʹ
    dockerignore
    Λ࢖͏

    View Slide

  37. dockerignore

    View Slide

  38. ޙΖʹॻ͍ͯ͋Δ
    pattern͕༏ઌ͞ΕΔ
    ઌ಄ʹ!Λ͚ͭΔͱ൱ఆͰ͖Δ

    View Slide

  39. ࢖͑Δදه
    foo/*
    foo/**
    foo/?

    View Slide

  40. ಺෦Ͱ
    ਖ਼نදݱʹม׵͍ͯ͠Δ

    View Slide

  41. ਖ਼نදݱͳΒΘ͔Δ
    ͱ͍͏ਓ޲͚ʹ
    github.com/orisano/dire

    View Slide

  42. ରԠ͢Δਖ਼نදݱΛग़ྗ

    View Slide

  43. Ͳ͏΍࣮ͬͯݱ͍ͯ͠Δ͔

    View Slide

  44. %PDLFS$-* EPDLFSE
    $ docker build .
    1. build contextΛtarͰarchive͢Δ

    View Slide

  45. %PDLFS$-* EPDLFSE
    $ docker build .
    0. build contextͷҎԼͷϑΝΠϧ͕readՄೳ͔֬ೝ
    (͜͜΋dockerignoreΛߟྀ͞ΕΔ)

    View Slide

  46. %PDLFS$-* EPDLFSE
    $ docker build .
    0.5. directoryΛtraverse͠ͳ͕Βdockerignoreʹ
    Ϛον͠ͳ͍ϑΝΠϧΛtarʹ௥Ճ͍ͯ͘͠

    View Slide

  47. %PDLFS$-* EPDLFSE
    $ docker build .
    1. build contextΛtarͰarchive͢Δ

    View Slide

  48. ༨ஊ

    View Slide

  49. %PDLFS$-* EPDLFSE
    $ docker build .
    0. build contextͷҎԼͷϑΝΠϧ͕readՄೳ͔֬ೝ
    (͜͜΋dockerignoreΛߟྀ͞ΕΔ)

    View Slide

  50. ϑΝΠϧ਺෼dockerignore͕
    ίϯύΠϧ͞ΕΔΑ͏ʹ
    ͳ͍ͬͯͨ

    View Slide

  51. docker/cli/pull/1577
    Ͱमਖ਼͞Ε
    Docker 19.03
    ͔ΒೖΓ·͢

    View Slide

  52. ͪΐͬͱಛघͳྫ

    View Slide

  53. monorepoͰ
    subsystemؒͷґଘ͕͋Δ
    ৔߹

    View Slide

  54. େຊΛbuild contextʹ
    ͠ͳ͍ͱ͍͚ͳ͘ͳΔ

    View Slide

  55. build context͕Ͱ͔͘ͳΔ

    View Slide

  56. dockerignoreͰղܾ!
    ͢Δ͜ͱ͸Ͱ͖ͳ͍

    View Slide

  57. dockerignore͸buildຖʹ
    ϑΝΠϧΛࢦఆͰ͖ͳ͍

    View Slide

  58. subsystemຖʹ
    dockerignoreΛ࡞Γ
    buildͷͨͼʹ
    dockerignoreΛࣗಈੜ੒͢Δ
    Ξϓϩʔν͕༗ޮ

    View Slide

  59. github.com/orisano/dignore

    View Slide

  60. Α͋͘Δ࿩

    View Slide

  61. gitignoreͱdockerignore
    ͕
    ΄΅ҰॹʹͳΔ

    View Slide

  62. ͦ͏͍͏৔߹ʹ͸
    dockerignore
    ͍Βͳ͘ͳΔํ๏͕͋Δ

    View Slide

  63. git archiveͬͯ
    ίϚϯυ࢖ͬͨ͜ͱ͋Γ·͔͢

    View Slide

  64. repositoryΛtarʹͰ͖Δ
    ίϚϯυ

    View Slide

  65. tarʹ͢Ε͹buildͰ͖ΔͷͰ

    View Slide

  66. git archive HEAD | docker build -

    View Slide