본문 바로가기

DevOps/Docker

도커 사용하기(3) - Dockerfile로 이미지 직접 만들기(Node.js) :: DANIDANI

다음 예제는 Node.js 기반의 이미지를 dockerfile로 만들어 배포합니다. node와 npm이 설치되어있는 환경을 가정하고 진행합니다.

 

Express로 배포하려는 프로젝트 생성

express 생성을 도와주는 express-generator 설치(에러 시 sudo로 접근)

npm install -g express-generator

docker-test 라는 이름의 프로젝트 생성(저는 ejs 템플릿 엔진을 사용했지만, 저 옵션은 생략가능합니다,)

express docker-test --ejs

생성된 프로젝트에서 npm 실행

cd docker-test npm install npm start

dockerfile 생성하기

vi Dockerfile

Dockerfile 작성하기

# 베이스 이미지 설정
FROM node:12.18.1

# 관리하는 사람
MAINTAINER DaEunShim

# dockerfile이 동작할 디렉터리 생성 
RUN mkdir /app

# /app 을 기본 디렉터리로 설정
WORKDIR /app

#현재 dockerfile 있는 경로의 모든 파일을 /app에 복사
COPY . /app

# npm install 실행
RUN npm install

# 가상 머신에서 오픈할 포트번호 지정
EXPOSE 3000

# 실행할 명령어 작성
CMD ["npm", "start"]

 

.dockerignore

node_modules/

.dockerignore에 명시된 파일들은 dockerfile 실행 시 무시가 된다.

여기선 node_modules를 추가하여 해당 파일이 이미지에 추가 되지 않도록 한다.

(어차피 npm install 시 생성되기 때문에 필요없다. 용량만 차지)

Dockerfile Build

docker build -t (docker hub id)/(이미지명):(태그명) (도커파일 경로)

 

docker build -t 10ekdms01/node-test:1.0 .

 

생성한 Dockerfile로 실행

docker run -p 8080:3000 10ekdms01/node-test:1.0

 

생성된 Image 확인

docker images

 

 

728x90