# 어떤 베이스 이미지 사용할 것인지
FROM node:16-alpine
# 이미지 파일 안에서 어떤 디렉토리에 어플리케이션 복사해 올 것인지
WORKDIR /app
COPY package.json package-lock.json ./
# npm install 대신에 ci 사용하면 버전 동일한 것으로 설치됨
RUN npm ci
# 자주 변경되는 것은 아래에 작성
COPY index.js .
# node 실행하고 index.js 파일 실행해
ENTRYPOINT [ "node", "index.js" ]
이미지 만들기
터미널에 docker build -f Dockerfile -t fun-docker . 입력
. : build context로 명령어 실행하는 현재 경로 지정해줌 (최상위 경로에 Dockerfile 있어서 . 입력)
-f : 어떤 도커파일 사용할 것인지 명시
-t : 도커 이미지에 이름 부여 (태그 개념)
docker images : 이미지 생성되었는지 확인하기
도커 컨테이너 실행
docker run -d -p 8080:8080 fun-docker
-d : detached (터미널아, 기다리지 말고 너 하는 일 해)
-p : 포트 지정 및 연결
docker logs 607700e0d1a2 : 컨테이너 id 입력하여 로그 확인
이미지 배포
dockerhub 홈페이지로 들어가서 create repository
docker push gaeun0811/docker-example:tagname
docker tag fun-docker:latest gaeun0811/docker-example:latest
리파지토리랑 이름이 똑같아야 하므로 tag 이용해서 기존 이름인 fun-docker에서 리파지토리 이름 변경