# Express in Docker Container
# dockerhub에서 검색
FROM node:14
# 작업디렉터리 설정
WORKDIR /myfolder/
# 소스코드만 변경 시 이렇게 하면 재실행 방지할수 있음 (캐싱 문제 해결)
COPY ./package.json /myfolder/
COPY ./yarn.lock /myfolder/
RUN yarn install
# 현 위치의 모든 파일을 폴더에 복사하기
# 모든 파일을 복사해 오는데 문제는 도커에서 관리하는 부분이
# 수정 됬다면 . <- 다른 파일이 새롭게 카피해서 넣음
# 여기서는 캐시가 깨짐
# 그래서 이 밑부분부터는 캐싱이 안되고 재실행 됨
COPY . /myfolder/
# 컨테이너 안에서 backend 실행
CMD yarn dev
node_modules
// 현재 디렉토리에 있는 Dockerfile을 이미지로 변환
docker build .
docker images
docker run 이미지ID
docker ps
docker exec -it 컨테이너_ID /bin/bash
docker stop 컨테이너_ID
docker rm `docker ps -a -q`
// 도커 이미지 삭제하기
docker rmi 이미지_ID
// 전체 도커 이미지 삭제하기
docker rmi `docker images -a -q`
docker system prune -a
docker run -p 8000:3000 이미지_아이디