다음 예제는 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
'DevOps > Docker' 카테고리의 다른 글
도커 사용하기(4) - 생성한 이미지 DockerHub에 올리고 실행 :: DANIDANI (2) | 2020.12.18 |
---|---|
도커 사용하기(2) - Dockerfile 작성 방법 :: DANIDANI (0) | 2020.12.17 |
도커 사용하기(1)- 설치와 컨테이너 실행 :: DANIDANI (0) | 2020.12.17 |
도커(Docker) 시작하기 - 이미지, 컨테이너, 장점 :: DANIDANI (0) | 2020.12.17 |