#FROM: 베이스 이미지
#server image는 18-alpine 버전의 node 이미지 사용
FROM node:18-alpine
#WORKDIR: 명령어 실행할 위치 설정(해당 디렉토리가 없으면 새로 생성)
WORKDIR /opt/app
#RUN: 이미지 생성 과정에서 실행할 명령어. 새로운 레이어에서 명령어 실행, 생성
#실행될 때마다 레이어가 생성되고 캐시됨
RUN apk upgrade
RUN apk add git
#COPY: build 명령 중간에 호스트 파일 또는 폴더를 이미지에 가져옴
COPY package.json ./
COPY ./ ./
RUN git clone git address /opt/app
RUN corepack enable
RUN corepack prepare pnpm@latest --activate
RUN pnpm update
RUN pnpm build
#EXPOSE: 생성된 이미지에서 열어줄 포트
EXPOSE 3000
#CMD: 컨테이너 가동시 바로 실행되는 명령어. WORKDIR에서 실행됨
CMD ["pnpm", "start"]