💡 이번 글은 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 |