도커 설치 및 API 패키징

도커 설치 및 API 패키징

카테고리
Docker
날짜
2024년 06월 12일
작성자
JeongjungsikJeongjungsik
태그

도커 설치

Dockerfile 파일 생성후 다음 입력
# 1. 운영체제 및 프로그램 설치(이미 리눅스, node, npm yarn 까지 모두 깔여있는 컴퓨터 다운로드하는 방식) FROM node:14 # 2. 내 컴퓨터에 있는 폴더나 파일을 도커 컴퓨터 안으로 복사하기 COPY ./index.js /index.js # 3. 도커안에서 index.js 실행시키기 CMD node index.js
 
  • #은 주석처리임
  • 눈여겨 봐야할 건 #3번 부분
 
CMD 는 도커안에서 index.js를 실행 시키는 명령어임
CMD 다음에 오는 node index.js 이거는 node가 index.js를 실행시킬 때의 명령문임
 
yarn dev 명령문으로 실행하고싶으면 아래와 같이 작성할 것
FROM node:14 # RUN mkdir myfolder => 아래에서 COPY할 때, 어차피 자동으로 만들어주므로 굳이 필요 없음 COPY . /myfolder/ # 아래 둘중 택1 # RUN cd ./myfolder/ WORKDIR /myfolder/ RUN yarn install CMD yarn dev
 
  • CMD로 작성된 부분은 도커 컨테이너 부분에 포함되지 않음
  • 도커는 위의 명령어들을 차례대로 모든걸 실행시키고 이미지로 저장시키는데,(여기서 이미지는 하나의 파일을 의미함) 이미지로 저장될 때 CMD 명령어쪽은 저장이 안됌
 
  • 즉, CMD는 실행시킬 때 사용하는 명령어임
 

도커 API 패키징

 
  1. 로컬 원본 파일을 수정했으면 도커 빌드를 다시 해줘야 기존 도커 컨테이너에 적용이 됨.
  1. .dockerignore 파일은 .gitignore와 똑같음.
 
💡
Tip!: 보통 2번에 node_modules를 적는데, 이건 환경관에 일관성을 유지하기 위함임 로컬 개발 환경의 node_modules와 도커 컨테이너 내부의 node_modules는 종종 다를 수 있는데 로컬 node_modules를 복사하는 대신 도커 컨테이너 내에서 새로 설치해서 환경 간의 일관성을 유지하게끔 할 수 있음
 
FROM node:14 # RUN mkdir myfolder => 아래에서 COPY할 때, 어차피 자동으로 만들어주므로 굳이 필요 없음 COPY . /myfolder/ # 아래 둘중 택1 # RUN cd ./myfolder/ WORKDIR /myfolder/ RUN yarn install # 이부분. CMD yarn dev
위의 도커 컨테이너 설치 코드에서 RUN yarn install 이 부분이
도커 컨테이너 내에서 새롭게 인스톨을해서 node_modules를 설치한다는 뜻임
 

CHCHED

도커 컨테이너에 파일이나 폴더 및 패키지 api를 넣는거를 도커에 빌드했다. 라고하는데,
도커에도 캐싱처리 라는게 있음
앞전에 받았던 거를 임시 폴더에 넣어두고 다시 재빌드를하면 거기에서 받아오는것임
 

도커 파일 리팩토링

FROM node:14 COPY ./package.json /myfolder/ COPY ./yarn.lock /myfolder/ # 커서 위치 /myfolder 뒤로 변경 WORKDIR /myfolder/ RUN yarn install COPY . /myfolder/ CMD yarn dev
package.json과 yarn.lok를 myfolder안에 복사해주고,
인스톨을 후, 내 전체 폴더의 파일을 myfolder에 카피하고 실행하라고 리팩토링해줬음.
 
이렇게 변경을 해주면 좋은게,
래팩토링 전에는 매번 yarn install을 해줬다면
리팩토링 후에는 캐싱된 yarn install을 해줌
 
 
 

댓글

guest