docker에서 node.js 빌드 하기

작성자
스터디 날짜
2023/07/22
태그
Dockerfile
COPY
1 more property

[docker 와 node.js ]

도커와 node.js를 쓰게되면 도커안에서 node.js가 실행된다.

[ 1. Dockerfile 만들기 ]

## 베이스 이미지를 명시 FROM node:10 ## 추가적으로 필요한 파일 다운로드 RUN npm install ## 컨테이너 시작시 실행될 명령어를 명시해준다 CMD ["node", "server.js"]
Docker
복사
docker 파일을 위와 같이 작성하고 docker build를 해준다
docker build ./
만약 package.json이 없다는 오류가 나올 수 있다.

[ 왜 Package.json 이 없다는 오류가 나올까? ]

도커 파일을 Build를 할 때 Node 베이스 이미지로 임시 컨테이너를 생성합니다. 그리고 그 임시 컨테이너로 이미지를 만듭니다. 하지만 그 임시 컨테이너에는 package.json이 Node 이미지 파일 스냅숏에 포함되어 있지 않습니다. 그래서 package.json은 컨테이너 밖에 있는 상황이 됩니다.

[ 해결 방법 ]

Dockerfile에 COPY를 넣어준다
# 베이스 이미지를 명시해준다 FROM node:10 # COPY를 통해 컨테이너안에 넣어준다 package.json뿐만아니라 # 다른 파일들도 넣어줘야하므로 아래와 같이 쓰자 COPY ./ ./ # 추가적으로 필요한 파일 다운로드 RUN npm install # 컨테이너 시작시 실행될 명령어 CMD ["node","server.js"]
Docker
복사
docker를 다시 build를 하게되면 아래와 같이 된다.
이거 뿐만 아니라 우리가 docker build 할 때 workingDirectory도 명시해줘야한다 아래 페이지에 그 설명을 덧붙여서 진행할게요 또한 어플리케이션 소스만 변경시 재빌드할 때 효율적으로 하는방법도 있습니다.