[Docker] ํšจ์œจ์ ์ธ Dockerfile ์ž‘์„ฑํ•˜๊ธฐ, ์ž‘์„ฑ ์‹œ ์ฃผ์˜์‚ฌํ•ญ

2022. 11. 18. 01:37ใ†Backend/Docker

728x90
๋ฐ˜์‘ํ˜•

Good ๐Ÿ‘

  • ํ•˜๋‚˜์˜ ๋ช…๋ น์–ด๋ฅผ \๋กœ ๋‚˜๋ˆ ์„œ ๊ฐ€๋…์„ฑ์„ ๋†’์ธ๋‹ค.
  • .dockerignore ํŒŒ์ผ์„ ์ž‘์„ฑํ•ด ๋ถˆํ•„์š”ํ•œ ํŒŒ์ผ์„ ๋นŒ๋“œ ์ปจํ…์ŠคํŠธ์— ํฌํ•จํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ๋นŒ๋“œ ์บ์‹œ๋ฅผ ์ด์šฉํ•ด ๊ธฐ์กด์— ์‚ฌ์šฉํ–ˆ๋˜ ์ด๋ฏธ์ง€ ๋ ˆ์ด์–ด๋ฅผ ์žฌ์‚ฌ์šฉํ•œ๋‹ค.
  • &&๋กœ ๊ฐ RUN ๋ช…๋ น์„ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด ํ•˜๋‚˜์˜ RUN์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ์ž‘์„ฑํ•œ๋‹ค.
    ์—ฌ๋Ÿฌ ๊ฐœ์˜ RUN ๋ช…๋ น์–ด๊ฐ€ ํ•˜๋‚˜๋กœ ๋ฌถ์ด๋ฉด ์ด๋ฏธ์ง€ ๋ ˆ์ด์–ด์˜ ๊ฐœ์ˆ˜ ๋˜ํ•œ ํ•˜๋‚˜๋กœ ์ค„์–ด๋“ ๋‹ค.
  • ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋นŒ๋“œํ•œ ์ด๋ฏธ์ง€์— ๋ถˆํ•„์š”ํ•œ ์ด๋ฏธ์ง€ ๋ ˆ์ด์–ด๊ฐ€ ๋“ค์–ด์žˆ๋‹ค๋ฉด ํ•ด๋‹น ์ด๋ฏธ์ง€๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  docker export, import ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ด๋ฏธ์ง€๋กœ ๋งŒ๋“ฆ์œผ๋กœ์จ ์ด๋ฏธ์ง€์˜ ํฌ๊ธฐ๋ฅผ ์ค„์ธ๋‹ค.

 

Bad โŒ

  • Dockerfile์„ ์•„๋ฌด๋ ‡๊ฒŒ๋‚˜ ์ž‘์„ฑํ•˜๋ฉด ์ €์žฅ ๊ณต๊ฐ„์„ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ์ฐจ์ง€ํ•˜๋Š” ์ด๋ฏธ์ง€๋‚˜ ๋ ˆ์ด์–ด๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์€ ์ด๋ฏธ์ง€๊ฐ€ ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ๋‹ค.

๋น„ํšจ์œจ์ ์ธ ๋นŒ๋“œ ์˜ˆ์‹œ

FROM ubuntu:14.04
RUN mkdir /test
RUN fallocate -1 100m /test/dummy # 100MB ํฌ๊ธฐ์˜ ํŒŒ์ผ์„ ๊ฐ€์ƒ์œผ๋กœ ๋งŒ๋“ค์–ด ์ปจํ…Œ์ด๋„ˆ์— ํ• ๋‹นํ•˜๊ณ , ์ด๋ฅผ ์ด๋ฏธ์ง€ ๋ ˆ์ด์–ด๋กœ ๋นŒ๋“œํ•œ๋‹ค.
RUN rm /test/dummy # ํŒŒ์ผ์„ ์‚ญ์ œํ•œ๋‹ค.

# ๋นŒ๋“œ๊ฐ€ ์™„๋ฃŒ๋˜์–ด ์ตœ์ข… ์ƒ์„ฑ๋œ ์ด๋ฏธ์ง€์—๋Š” 100MB ํฌ๊ธฐ์˜ `/dummy` ํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ์œ„ Dockerfile๋กœ ๋นŒ๋“œํ•œ ์ด๋ฏธ์ง€์˜ ํฌ๊ธฐ๋Š” ubuntu:14.04 ์ด๋ฏธ์ง€์— 100MB๋ฅผ ๋”ํ•œ ์•ฝ 290MB๋ฅผ ์ฐจ์ง€ํ•œ๋‹ค.
  • RUN rm /test/dummy์œผ๋กœ ํŒŒ์ผ์„ ์‚ญ์ œํ–ˆ์œผ๋ฏ€๋กœ/test/dummy๋Š” ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ด๋ฏธ์ง€๋กœ ์ƒ์„ฑํ•  ๋•Œ ์ปจํ…Œ์ด๋„ˆ์—์„œ ๋ณ€๊ฒฝ๋œ ์‚ฌํ•ญ๋งŒ ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€ ๋ ˆ์ด์–ด๋กœ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ์‹์˜ ๋‹จ์  ์ค‘ ํ•˜๋‚˜์ด๋‹ค.
  • ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๋”๋ผ๋„ ์ด๋Š” ํŒŒ์ผ์„ ์‚ญ์ œํ–ˆ๋‹ค๋Š” ๋ณ€๊ฒฝ์‚ฌํ•ญ์œผ๋กœ์„œ ๋ ˆ์ด์–ด๋กœ ์ƒˆ๋กญ๊ฒŒ ์ €์žฅ๋  ๋ฟ, ์‹ค์ œ 100MB ํฌ๊ธฐ์˜ ํŒŒ์ผ์€ ์ด์ „ ๋ ˆ์ด์–ด์— ๋‚จ์•„์žˆ๋‹ค.
  • ์‹ค์ œ๋กœ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๋Š” ํŒŒ์ผ์ด ์ด๋ฏธ์ง€ ๋ ˆ์ด์–ด๋กœ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜๋ฏธ ์—†๋Š” ์ €์žฅ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•˜๊ฒŒ ๋œ ๊ฒƒ์ด๋‹ค.

 

๊ฐœ์„ ์•ˆ

FROM ubuntu:14.04
RUN mkdir /test && \
RUN fallocate -1 100m /test/dummy&& \
RUN rm /test/dummy
  • &&๋กœ ๊ฐ RUN ๋ช…๋ น์„ ํ•˜๋‚˜๋กœ ๋ฌถ๋Š”๋‹ค.
  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ RUN ๋ช…๋ น์–ด๊ฐ€ ํ•˜๋‚˜๋กœ ๋ฌถ์—ฌ ์ด๋ฏธ์ง€ ๋ ˆ์ด์–ด์˜ ๊ฐœ์ˆ˜ ๋˜ํ•œ ํ•˜๋‚˜๋กœ ์ค„์–ด๋“ ๋‹ค.
728x90
๋ฐ˜์‘ํ˜•