Dev./Docker
[Docker] node.js Dockerfile 예시
인쥭
2021. 6. 16. 10:56
반응형
Dockerfile
- 간단한 크롤링 코드를 도커 이미지로 만드는 예시이다.
#Dockerfile
FROM node:14-alpine
MAINTAINER ingnoh "ingnoh@tistory.com"
WORKDIR /crawler
COPY ./package*.json ./
COPY ./crawler.js ./server.js
RUN npm install
CMD [ "npm", "start" ]
- FROM: 현재 LTS 버전인 14를 사용하였음.
- WORKDIR: 컨테이너 내부의 워킹 디렉토리 경로를 /crawler로 명시하였음.
- COPY (1): npm install을 위해 package.json을 복사하였음.
- COPY (2): 로컬 PC의 현재 경로에 있는 crawler.js를 컨테이너 내부에 복사할 때 server.js로 이름을 변경
- RUN: npm install을 통해 package.json을 토대로 필요한 종속성을 설치
- CMD: npm start를 사용하여 server.js를 실행
- Dockerfile이 위치한 디렉토리에서 docker build -t my-crawler-test ./ 등으로 docker image를 빌드
참고
- 위의 예시는 두번째 COPY에서 굳이 server.js로 파일 이름을 변경하지만, package.json의 내용과 일치한다면 그럴 필요 없음!
- 덧붙여 CMD의 내용은 node server.js로 해도 무방하지만, 일반적으로는 npm start를 많이 사용한다고 함.
- npm start의 경우 package.json의 scripts.start에 실행할 명령어가 명시되어 있어야 함.
- scripts.start에 실행할 명령어가 명시되지 않은 경우, npm start는 node server.js 명령어를 사용한다고 함.