반응형
FROM node:14
#caching
#cach가 깨졌을때 발생하는 문제점 !
#package.json or codes
WORKDIR /myfolder/
# 어기 폴더에 커서 !
COPY ./package.json /myfolder/
COPY ./package-lock.json /myfolder/
RUN npm install
#node_modules 생성을 위해서
#여기까지 image로 생성 !
COPY . /myfolder/
# myfolder를 만들어서 모든 파일을 복사해줘
CMD npm run dev
docker라는 것은 한번 빌드 하면 Cache라는 걸 사용해서
재 사용을 통해 빠르게 빌드하게 된다.
우리가 도커를 사용하는 이유는 어디서든 동일한 환경에서 개발 및 서버 운영을 시도해보기 위함인데
여러사람이 코드를 변경하게 되면 해당 도커 파일이 빌드 될 때마다 용량 및 시간을 많이 잡아 먹는 경우가 생긴다
특히 웹 개발에서 중요한것은
package.json이라는 파일인데
해당 파일은 누군가가 개발해 놓은 소스코드를 쉽게 npm install 을 통해 가져왔고 설치 했다는 파일이다.
이 파일 및 소스 코드는 사용자가 소스코드를 업그레이드 및 수정할 때 많은 변화가 생기는데
이 코드가 변경되면 이부분이 Dockerfile 에도 적용되어야 가상 도커 컴퓨터 환경에도 그대로 적용되는 부분이다.
위에 보면
RUN npm install
전에
COPY ./package.json /myfolder/
COPY ./package-lock.json /myfolder/
이렇게 따로 미리 카피를해준다
그래야 시시 각각 바뀌는 코드를 바로바로 적용해줄 수 있다.
반응형
'Web Dev' 카테고리의 다른 글
Java (Spring boot): Tomcat 에러 [The following method did not exist: org.apache.tomcat.util.modeler.Registry.disableRegistry()] (0) | 2023.06.07 |
---|---|
nodejs file list in directory - 파일 리스트를 어떻게 노드 js로 가져 오나? (1) | 2023.05.24 |
pm2 어떻게 쓰는지 모르면 이렇게 쓰면 될 것 같습니다. (0) | 2023.03.28 |
Docker Dockerfile 작성법 , docker 명령어 쉽게 접근하기 (0) | 2023.03.21 |
Javascript 문법 - [ ...변수 ] : 스프레드 연산자(spread)에 대해 설명해줄께 !! (0) | 2023.03.10 |
JAVA Spring [전자정부프레임워크] 프로젝트 환경 설정 ! (0) | 2023.03.09 |