etc-Dockerfile-layer
Last updated
Last updated
๋์ปค๋ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค ๋ ์ฌ๋ฌ ๊ฐ์ ๊ณ์ธต(layer)์ ๊ฐ์ง ๋ค์์ ์ค๋ ์ท์ผ๋ก ๋๋์ด ์ ์ฅํ๋ค. ์ด๋ ์ฌ๋ฌ ์ด๋ฏธ์ง ํ์ผ๋ค์ ๊ด๋ฆฌํ ๋ ์ค๋ณต๋๋ ์์ญ์ ํ๋์ ๋ ์ด์ด๋ฅผ ํตํด ๊ด๋ฆฌํ์ฌ ๊ณต๊ฐ/์๊ฐ์ ํจ์จ์ ์ป๋ ์ฅ์ ์ด ์๋ค.
์ฆ, ๋์ปค๋ Dockerfile์ ์ฝ์ด๋ค์ฌ, ํ์ผ ์์คํ ์ ๋ณํ๋ฅผ ์ฃผ๋ ์ปค๋งจ๋๋ง๋ค ์๋ก์ด ์ด๋ฏธ์ง ๋ ์ด์ด๋ฅผ ๋ง๋ ๋ค. ์ด๊ฒ์ผ๋ก ์ค๋ณต๋๋ ๋ ์ด์ด๋ฅผ ๋ค์ ๋ค์ด๋ก๋ ๋ฐ์ ํ์๊ฐ ์์ด์ ธ ์ด๋ฏธ์ง์ ๋ค์ด๋ก๋ ์๊ฐ์ ์ ์ฝํ๋ค.
๊ฒฐ๊ณผ๋ ์๋์ ๊ฐ์ผ๋ฉฐ, RootFS๋ฅผ ํ์ธํ์ฌ ํด๋น ์ด๋ฏธ์ง๊ฐ 9๊ฐ์ ๋ ์ด์ด๋ก ๊ตฌ์ฑ๋์ด์์์ ๋ณผ ์ ์๋ค.
RUN, COPY, ADD, WORKDIR, USER
ENV, LABEL, ARG, EXPOSE
RUN: ์๋ก์ด ๋ ์ด์ด๋ฅผ ์์ฑํ๊ณ ๊ทธ ์์์ ๋ช ๋ น์ ์คํ
๋ฐ๋ผ์ &&๋ก ์ฌ๋ฌ๊ฐ์ ๋ช ๋ น์ด๋ฅผ ์ด์ด์ ํ๋์ ๋ ์ด์ด๊ฐ ์์ฑ๋๋๋ก ํ๋ค.
์์: RUN apt-get update && apt-get install -y python
COPY: ์๋ก์ด ํ์ผ ๋๋ ๋๋ ํ ๋ฆฌ๋ฅผ ์ถ๊ฐํ๊ณ ์๋ก์ด ๋ ์ด์ด๋ฅผ ์์ฑํ๋ค.
ADD: COPY์ ์ ์ฌํ๊ฒ ์๋ก์ด ํ์ผ ๋๋ ๋๋ ํ ๋ฆฌ๋ฅผ ์ถ๊ฐํ๊ณ ๋ ์ด์ด๋ฅผ ์์ฑํ๋ค.
USER: ์๋ก์ด ์ฌ์ฉ์๋ฅผ ์ค์ ํ๊ณ ๋ ์ด์ด๋ฅผ ์์ฑํ๋ค. ํด๋น ์ฌ์ฉ์์ UID์ GID๊ฐ ์๋ก์ด ๋ ์ด์ด์ ๋ฐ์.
๋ง์ฝ Dockerfile์ RUN, ADD, COPY, WORKDIR ๊ณผ ๊ฐ์ ๋ช ๋ น๋ฌธ์ด ์์ ๋๋ฉด, ๊ธฐ์กด ์บ์๊ฐ ๋ฌดํจํ ๋๊ณ , ์๋ก์ด ๋ ์ด์ด๋ฅผ ์์ฑํ๋ค.
์ด๋ฏธ์ง ๋น๋๋ฅผ ์คํํ๋ฉด ์ด์ ๋น๋์ ๋ ์ด์ด๋ฅผ ์ฌ์ฌ์ฉํ๋ ค๊ณ ์๋ํ๋ค.
์ด๋ฏธ์ง์ ๋ ์ด์ด๊ฐ ๋ณ๊ฒฝ๋์ง ์์ ๊ฒฝ์ฐ, ๋น๋๋ ๋น๋ ์บ์์์ ๋ ์ด์ด๋ฅผ ๊ฐ์ ธ์จ๋ค.
๋ง์ง๋ง ๋น๋ ์ดํ ๋ ์ด์ด๊ฐ ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ ํด๋น ๋ ์ด์ด์ ๊ทธ ๋ค์ ์๋ ๋ชจ๋ ๋ ์ด์ด๋ฅผ ๋ค์ ๋น๋ํ๋ค.
์์ ์ด๋ฏธ์ง์์ ๋ณด๋ฏ์ด Dockerfile์ ๋ชจ๋ ํ๋ก์ ํธ ํ์ผ์ ์ปจํ ์ด๋์ ๋ณต์ฌ(COPY . .) ํ ๋ค์, ๋ค์ ๋จ๊ณ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ข ์์ฑ์ ๋ค์ด๋ก๋(RUN go mod download) ํ๋ค.
ํ๋ก์ ํธ์ ํ์ผ์ ๋ณ๊ฒฝํ๋ฉด, COPY ๋ ์ด์ด์ ๋ํ ์บ์๊ฐ ๋ฌดํจํ ๋๋ค.
๋ํ, ๊ทธ ๋ค์ ์ค๋ ๋ชจ๋ ๋ ์ด์ด์ ๋ํ ์บ์๋ ๋ฌดํจํ๋๋ค.
์ฌ๊ธฐ์ ๋์ปคํ์ผ ์ง์นจ์ ์์ ๋๋ฌธ์ ๋น๋๋ ํจํค์ง๊ฐ ๋ณ๊ฒฝ๋์ง ์์์์๋ Go ๋ชจ๋์ ๋ค์ ๋ค์ด๋ก๋ํด์ผ ํ๋ค.
Dockerfile ์ง์นจ ์์๋ฅผ ๋ณ๊ฒฝํ์ฌ ์ด๋ฌํ ์ค๋ณต์ ๋ฐฉ์งํ ์ ์๋ค.
์์ค ์ฝ๋๊ฐ ์ปจํ ์ด๋์ ๋ณต์ฌ๋๊ธฐ ์ ์ ์ข ์์ฑ ๋ค์ด๋ก๋ ๋ฐ ์ค์น๊ฐ ์ด๋ฃจ์ด์ง๋๋ก ์์๋ฅผ ๋ณ๊ฒฝํ๋ค. ์ด๋ ๊ฒ ํ๋ฉด, ์์ค ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ ๋์๋ ๋น๋๊ฐ ์บ์์์ ์ข ์์ฑ ๋ ์ด์ด๋ฅผ ์ฌ์ฌ์ฉํ ์ ์๋ค.
Go์ ๊ฒฝ์ฐ go.mod ์ go.sum์ด๋ผ๋ ๋ ๊ฐ์ ํ์ผ์ ์ฌ์ฉํ๋๋ฐ, ์ด๋ node์ package.json ๊ณผ package-lock.json ๊ณผ ๊ฐ๋ค.
์์๋ฅผ ์๋์ ๊ฐ์ด ๋ณ๊ฒฝํ๋ค.
COPY go.mod go.sum . ๋ฅผ ๋จผ์ ๋ฐฐ์นํ๊ณ RUN์ ํตํด ์ข ์์ฑ์ ์ค์นํ๋ค.
๊ทธ ํ์ COPY . . ๋ช ๋ น์ด๋ก ์์ค ์ฝ๋๋ฅผ ๋ณต์ฌํ๋ค.
์ด์ ์์ค ์ฝ๋๋ฅผ ํธ์งํ๋ฉด ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ ๋ ๋น๋๊ฐ ๋งค๋ฒ ์ข ์์ฑ์ ๋ค์ด๋ก๋ํ์ง ์๋๋ค.