๐ก ์ด๋ฒ ๊ธ์ 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 ํฌํธ๋ก ์ด๋ฏธ์ง ๋น๋๊ฐ ์งํ๋๋ค.
'DevOps > Docker' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Docker] Dockerfile์์ ํ๊ฒฝ๋ณ์ ์ฌ์ฉํ๊ธฐ (0) | 2023.12.24 |
---|---|
[Docker] ์์๋๋ฉด ํธ๋ฆฌํ ๋์ปค ๋ช ๋ น์ด&์ต์ (1) | 2023.12.23 |