๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
DevOps/Docker

[Docker] Dockerfile์—์„œ ๋นŒ๋“œ ์ธ์ˆ˜ ARG ์‚ฌ์šฉํ•˜๊ธฐ

by suhyeon chae 2023. 12. 24.

๐Ÿ’ก ์ด๋ฒˆ ๊ธ€์€ node.js ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œ ์ธ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€๋กœ build ํ•˜๋Š” ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค. (์˜ˆ์ œ๋Š” node.js๋กœ ํ–ˆ์ง€๋งŒ ๋นŒ๋“œ ์ธ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋‚˜์˜ค๋‹ˆ ๋๊นŒ์ง€ ๋ด์ฃผ์„ธ์š”!)

 

โ—๏ธ์ด๋ฒˆ ํฌ์ŠคํŠธ๋ฅผ ์ฝ๊ธฐ ์ „์— ๋„์ปค ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฒ•์— ๋Œ€ํ•ด ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด ์ด์ „ ํฌ์ŠคํŠธ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”!

https://suhyeon-developer.tistory.com/26

 

[Docker] Dockerfile์—์„œ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ

๐Ÿ’ก ํ•ด๋‹น ๊ธ€์€ node.js ํ”„๋กœ์ ํŠธ๋ฅผ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€๋กœ build ํ•˜๋Š” ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค. (์˜ˆ์ œ๋Š” node.js๋กœ ํ–ˆ์ง€๋งŒ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋‚˜์˜ค๋‹ˆ ๋๊นŒ์ง€ ๋ด์ฃผ์„ธ์š”!) โ–ถ๏ธŽ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ž€? ์†Œํ”„

suhyeon-developer.tistory.com

 

 

โ–ถ๏ธŽ ๋นŒ๋“œ ์ธ์ˆ˜๋ž€?

๋นŒ๋“œ ์ธ์ˆ˜(Build Arguments)๋Š” Docker ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๋Š” ๋™์•ˆ Dockerfile ๋‚ด์—์„œ ์ „๋‹ฌ๋˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜์ด๋‹ค. ์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค ์ค‘์—๋งŒ ์‚ฌ์šฉ๋˜๋ฉฐ, ์ด๋ฏธ์ง€์˜ ์ตœ์ข… ๋ ˆ์ด์–ด์—๋Š” ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋Š”๋‹ค. ๋นŒ๋“œ ์ธ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋นŒ๋“œ ๊ณผ์ •์—์„œ ๋™์ ์œผ๋กœ ๊ฐ’์„ ์ „๋‹ฌํ•˜๊ณ  ์ด๋ฏธ์ง€๋ฅผ ๋” ์œ ์—ฐํ•˜๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

 

โ–ถ๏ธŽ dockerfile ์ž‘์„ฑ

โœ”๏ธŽ ARG ๋ช…๋ น์–ด ์‚ฌ์šฉ

FROM node:14

WORKDIR /app

COPY package.json .

RUN npm install

COPY . .

ARG DEFAULT_PORT=80

# ์ธ์ˆ˜ ์‚ฌ์šฉ
ENV PORT $DEFAULT_PORT

# ์œ„์—์„œ ์ •์˜ํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์‚ฌ์šฉ
# $๋ฅผ ๋ถ™์—ฌ์ค˜์„œ ํ™˜๊ฒฝ๋ณ€์ˆ˜์ž„์„ ์•Œ๋ฆฐ๋‹ค.
EXPOSE $PORT

CMD [ "npm", "start" ]
→ ARG๋กœ ์„ ์–ธํ•œ DEFAULT_PORT ์ธ์ˆ˜๋Š” dockerfile์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ ๋ชจ๋“  ๋ช…๋ น์–ด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋„ ์•„๋‹˜
CMD ๋ช…๋ น์–ด์—์„œ๋Š” ์‚ฌ์šฉ ๋ถˆ๊ฐ€(ARG๋Š” ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋  ๋•Œ ์‹คํ–‰๋˜๋Š” ๋Ÿฐํƒ€์ž„ ๋ช…๋ น์ด๊ธฐ ๋•Œ๋ฌธ)

 

 

โ–ถ๏ธŽ docker ์‹คํ–‰ ๋ช…๋ น์–ด

โœ”๏ธŽ --build-arg ๋ช…๋ น์–ด ์‚ฌ์šฉ

→ docker build -t feedback-node:dev --build-arg DEFUALT_PORT=8000 .

โ‡ข ์‹คํ–‰ํ•  ๋•Œ ์ธ์ž๊ฐ’์„ ์ „๋‹ฌํ•œ๋‹ค. ๋„์ปค ํŒŒ์ผ์—์„œ๋Š” 80 ํฌํŠธ๋กœ ์ง€์ •ํ•ด๋„ ์œ„ ๋ช…๋ น์–ด์—์„œ ์ง€์ •ํ•˜๋“ฏ 8000ํฌํŠธ๋กœ ์ƒˆ๋กญ๊ฒŒ ์ธ์ž๋ฅผ ์ „๋‹ฌํ•˜๋ฉด 8000์œผ๋กœ ๋“ค์–ด๊ฐ€๋ฉฐ, ํ•ด๋‹น --build-arg ์˜ต์…˜์„ ์‚ฌ์šฉ ์•ˆํ•  ๊ฒฝ์šฐ defualt ๊ฐ’์ธ 80 ํฌํŠธ๋กœ ์ด๋ฏธ์ง€ ๋นŒ๋“œ๊ฐ€ ์ง„ํ–‰๋œ๋‹ค.