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 . . λͺ λ Ήμ΄λ‘ μμ€ μ½λλ₯Ό 볡μ¬νλ€.
μ΄μ μμ€ μ½λλ₯Ό νΈμ§νλ©΄ μ΄λ―Έμ§λ₯Ό λΉλν λ λΉλκ° λ§€λ² μ’ μμ±μ λ€μ΄λ‘λνμ§ μλλ€.