3. dockerfile-syntax

Dockerfile syntax ์ •๋ฆฌ

All about Dockerfile syntax

  • FROM

    • ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€ ์ง€์ •

  • RUN

    • ์ปจํ…Œ์ด๋„ˆ ๋‚ด์—์„œ ์‹คํ–‰ํ•  ์‰˜ ๋ช…๋ น์–ด๋ฅผ ์ง€์ •ํ•˜์—ฌ ํŒจํ‚ค์ง€ ๋˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์„ค์ •

  • WORKDIR

    • ๋ช…๋ น์ด ์‹คํ–‰๋  ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ง€์ •

    • ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์—†๋‹ค๋ฉด ์ƒ์„ฑ๋จ

  • COPY

    • ํ˜ธ์ŠคํŠธ ๋จธ์‹ ์˜ ํŒŒ์ผ์„ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€๋กœ ๋ณต์‚ฌ

  • ADD

    • COPY์™€ ์œ ์‚ฌ. ์ถ”๊ฐ€์ ์ธ ๊ธฐ๋Šฅ ์ œ๊ณต

    • ๋กœ์ปฌ ํŒŒ์ผ์ด๋‚˜ URL ๋ณต์‚ฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์••์ถ• ํŒŒ์ผ ์ž๋™์œผ๋กœ ํ•ด์ œํ•˜๊ณ  ์›๊ฒฉ ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ ๊ฐ€๋Šฅ

  • CMD

    • ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋  ๋•Œ ์‹คํ–‰ํ•˜๋Š” ๋ช…๋ น์„ ์„ค์ •

    • ๋„์ปค ํŒŒ์ผ์—์„œ ํ•œ ๋ฒˆ๋งŒ ์‚ฌ์šฉํ•ด์•ผ ํ•จ

    • ๋™์‹œ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ CMD ์ง€์‹œ๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋งˆ์ง€๋ง‰ CMD๋งŒ ์ ์šฉ๋จ

  • ENTRYPOINT

    • ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋  ๋•Œ ์‹คํ–‰๋˜๋Š” ์‹คํ–‰ ํŒŒ์ผ ์„ค์ •

    • CMD์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ ENTRYPOINT๋Š” ํ•ญ์ƒ ์‹คํ–‰๋จ

    • CMD๋Š” ENTRYPOINT์˜ ์ธ์ˆ˜๋กœ ์‚ฌ์šฉ๋จ

  • ENV

    • ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •

  • ARG

    • ๋นŒ๋“œ ์ค‘์— ์ „๋‹ฌ๋˜๋Š” ์ธ์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

  • EXPOSE

    • ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋…ธ์ถœํ•  ํฌํŠธ ์„ค์ •

  • VOLUME

    • ํ˜ธ์ŠคํŠธ ๋จธ์‹ ๊ณผ ์ปจํ…Œ์ด๋„ˆ ๊ฐ„์— ๋ณผ๋ฅจ์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •

  • USER

    • ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹คํ–‰๋  ์‚ฌ์šฉ์ž๋ฅผ ์„ค์ •

  • HEALTHCHECK

    • ์ปจํ…Œ์ด๋„ˆ์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค์ •

  • LABEL

    • ์ด๋ฏธ์ง€์— ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€

    • LABEL version="1.0"

  • SHELL

    • ๊ธฐ๋ณธ ์‰˜ ์ง€์ •

    • SHELL ["/bin/bash", "-c"]

  • STOPSIGNAL

    • ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ ๋ณด๋‚ด์งˆ ์‹œ๊ทธ๋„์„ ์ง€์ •

    • STOPSIGNAL SIGTERM

sample

Node.js Dockerfile sample

Python&Django Dockerfile sample

Multistaging nodejs sample

Build Docker image multistaging

docker compose

Last updated