.dockerignore
COPY . .
- 해당 명령은 모든 파일을 복사한다.
- 하지만 복사하지 않아도 되는 (안 하고 싶은) 파일이 있을 땐 ?
- .dockerignore 를 사용하자!
# npm install 을 실행한다면, 로컬 node_module 폴더를 굳이 복사할 필요가 없겠지?
node_modules
# Dockerfile 은 도커 이미지를 만드는 명령어 파일이니 프로젝트에 복사될 필요는 없다.
Dockerfile
# git 관련 파일도 추가가 필요 없당.
.gitignore
- .dockerignore 이름으로 루트 프로젝트 폴더(Dockerfile 이 존재하는) 파일을 생성한다.
- 복사하고 싶지 않은 파일들의 경로 이름을 써준다.
환경 변수
도커는 빌드 타임 인수arg와 런타임 환경 변수env를 지원해요! → 컨테이너와 이미지에 하드코딩 하지 말아요!
ARG 빌드 타임 인수
실행 중인 애플리케이션에 인수를 줄 수 있음. --bulid-arg
ENV 환경 변수
Dockerfile 내부에서 ENV 옵션 후, --env사용 가능
환경 변수를 사용해보자! feat: node.js
app.listen(process.env.PORT);
- 환경 변수 PORT 를 사용하도록 코드에 설정.
FROM node:14
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
# 환경변수 PORT 기본 값을 80 으로 설정
ENV PORT 80
# PORT 환경 변수 값을 사용하도록 수정
EXPOSE $PORT
CMD [ "npm", "start" ]
# 환경 변수에 포트 번호 맞춰 주기
docker run -d --rm -p 3000:8000 --name feedback-app
# 환경 변수 설정 (기본값 사용 X)
--env PORT=8000
-v feedback:/app/feedback -v "/Users/holidayk/Desktop/docker-study/data-volumes-03/Docker-Volume:/app:ro" -v /app/node_modules -v /app/temp feedback-node:env
# 이렇게도 사용 가능
-e PORT=8000
.env 파일 사용
.env 추가 후, 해당 파일에 있는 값 읽어오기도 가능
.env
PORT=8000
명령어
# 현재 터미널에 있는 폴더의 .env 파일이 환경 변수 파일이니 참고하라고 알려주기
--env-file ./.env
- docker run 명령어 대신 환경 변수 파일을 추가해서 설정 가능.
ARG 사용해보기!
이미지를 빌드할 때 다른 값을 플러그인(끼워넣기) 할 수 있음.
FROM node:14
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
# 도커파일에서만 사용 가능한 인수
# CMD 에서 사용 불가 : 컨테이너가 실행될 때 사용되는 런타임 명령이기 떄문
ARG DEFAULT_PORT=80
# ARG 인수 env 에 사용 가능
ENV PORT $DEFAULT_PORT
EXPOSE $PORT
CMD [ "npm", "start" ]
- Dockerfile 에서만 사용 가능
- ARG : 컨테이너가 실행될 때 사용되는 런타임 명령이라 → CMD 에서 사용 불가
- ENV 에서 사용 가능
# 이미지 빌드 명령어에서 다른 인수 주기 가능
docker build -t 이미지 --build-arg DEFAULT_PORT=8000 .
728x90
'개발공부 개발새발 > Docker' 카테고리의 다른 글
Docker ) 다중 컨테이너 (0) | 2024.04.02 |
---|---|
Docker ) Network (0) | 2024.03.29 |
Docker ) 도커 볼륨과 바인드 마운트 (0) | 2024.03.18 |
Docker ) 이미지, 컨테이너 관리. (0) | 2024.03.03 |
Docker ) 도커 이미지 기초 (1) | 2024.02.28 |