FROM node:20-alpine
WORKDIR /coko
COPY ./package*.json ./
RUN npm install
COPY ./ ./
CMD ["npm","run","start:dev"]
node:20-alpine 버전을 사용했습니다.
/coko 폴더를 생성해서 그 안에 파일을 넣습니다.
package*.json 파일들을 먼저 복사해서 넣은 후
npm install 명령어를 통해 관련 모듈등을 먼저 설치합니다. - 모듈중 내 환경설정을 보는 모듈이 있어서 따로 받아주는것입니다.
./ ./ 내 도커파일이 있는 위치의 모든 파일을 /coko 폴더 안에 복사합니다.
CMD ["npm","run","start:dev"] 이후 이미지가 컨테이너로 실행되면 해당 명령어가 실행됩니다.
이후에
docker build -t <내 이미지 이름> . 명령을 통해 이미지를 생성 할 수 있습니다.
만일 맥 m1 등 빌드 이슈가 있다면
저같은 경우
docker build --platform linux/amd64 -t coko . 처럼 빌드를 위한 플랫폼을 설정하는 옵션을 주시면 됩니다.
해당 명령어는 64비트 리눅스 아키텍처에서 동작하는 이미지를 빌드 한다는 옵션입니다.
(수정)
RUN npx prisma generate 명령어를 추가해서 prisma의 generate 명령어를 추가했습니다.
이 명령어와 같이
docker-compose로 nest 서버를 띄우게 되면 npx prisma migrate deploy명령이 실행되도록 세팅해야합니다.
또한 .dockerignore 파일을 설정했습니다.
이제 도커파일을 사용한 빌드시 이그노어에 작성된 파일들이 도커 이미지에 포함되지 않습니다.
🔗 관련 이슈
13
📝작업 내용
배포를 위해 현재 개발코드들을 도커 이미지로 만드는 도커파일을 작성했습니다.
node:20-alpine
버전을 사용했습니다./coko
폴더를 생성해서 그 안에 파일을 넣습니다.package*.json
파일들을 먼저 복사해서 넣은 후npm install
명령어를 통해 관련 모듈등을 먼저 설치합니다. - 모듈중 내 환경설정을 보는 모듈이 있어서 따로 받아주는것입니다../ ./
내 도커파일이 있는 위치의 모든 파일을/coko
폴더 안에 복사합니다.CMD ["npm","run","start:dev"]
이후 이미지가 컨테이너로 실행되면 해당 명령어가 실행됩니다.이후에
docker build -t <내 이미지 이름> .
명령을 통해 이미지를 생성 할 수 있습니다.만일 맥 m1 등 빌드 이슈가 있다면 저같은 경우
docker build --platform linux/amd64 -t coko .
처럼 빌드를 위한 플랫폼을 설정하는 옵션을 주시면 됩니다. 해당 명령어는 64비트 리눅스 아키텍처에서 동작하는 이미지를 빌드 한다는 옵션입니다.(수정)
RUN npx prisma generate
명령어를 추가해서 prisma의 generate 명령어를 추가했습니다.이 명령어와 같이 docker-compose로 nest 서버를 띄우게 되면
npx prisma migrate deploy
명령이 실행되도록 세팅해야합니다.또한
.dockerignore
파일을 설정했습니다. 이제 도커파일을 사용한 빌드시 이그노어에 작성된 파일들이 도커 이미지에 포함되지 않습니다.🔍 변경 사항
dockerFile 작성
💬리뷰 요구사항 (선택사항)