[Docker & Kubernetes] 도커를 이용하여 Express 배포하기 :: 잡다한 프로그래밍
반응형

0. 사전 준비

도커 설치 및 War파일이 준비가 되어있다는 가정하에 시작한다.


1. Dockerfile작성

Dockerfile

다음과 같은 도커 파일을 작성한다. 이때 server.xml과 war파일은 도커 파일이 존재하는 디렉터리 내부에 존재해야 한다.

 

#어떤 이미지를 기반으로 빌드하는지에 대해서 지정 node 8 사용
FROM node:8

#Dockerfile을 생성/관리하는 사람 없어도 무방
LABEL MAINTAINER dilrong "본인 이메일"

#디렉토리 생성
RUN mkdir -p /usr/src/app

#WORKDIR 설정
WORKDIR /usr/src/app

#앱 의존성 설치를 위해서 package.json 복사
COPY package*.json ./

#npm install 실행 (package.json에 의한 패키지 설치)
RUN npm install

#앱 소스 추가
COPY . .

#컨테이너에서 실행할 명령어 지정 (실행하면 기존 express에서 실행하는 port로 서버가 실행)
CMD ["npm", "start"]

 

이미지 만들기

sudo docker build -t 이미지이름:버전 .

예시
sudo docker build -t test_node:0.1 .

 

2. 이미지 실행

1번을 통해 만든 이미지를 다음과 같이 실행한다

sudo docker run 이미지명:버전

#예시 기존 nodejs서버가 2222 port이므로 -p 를 2222:2222로 컨테이너를 실행
sudo docker run -p 2222:2222 test_node:0.1

아래와 같은 -p는 80 포트로 오는 요청을 1111 포트로 전달해주겠다는 의미이다.

다음과 같이 실행하였다면 war파일이 제대로 배포되어있는 것을 확인할 수 있다.

반응형

+ Recent posts