From 54305f7edf4d0afa6e960f33e717a874a3053468 Mon Sep 17 00:00:00 2001 From: Ken So Date: Sun, 25 Sep 2022 00:34:15 +0800 Subject: [PATCH] chore: update docker file --- ci/Dockerfile | 13 ++++++++----- ci/docker-compose.yaml | 6 +++--- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/ci/Dockerfile b/ci/Dockerfile index 15b481c..bcbda6d 100644 --- a/ci/Dockerfile +++ b/ci/Dockerfile @@ -1,16 +1,19 @@ ARG WORKDIR=/opt/app +# Base Stage: Upgrade npm and install / upgrade pnpm FROM node:16.17-alpine3.15 AS base -RUN npm i -g pnpm +LABEL builder=true +RUN npm i -g npm pnpm -# Install dependencies only when needed +# Dependencies Stage: Copy package.json + lock file and install dependencies FROM base as dependencies ARG WORKDIR WORKDIR ${WORKDIR} COPY package.json pnpm-lock.yaml ./ -RUN pnpm install +# Skip pnpm checking + Husky init +RUN pnpm install --ignore-scripts -# Rebuild the source code only when needed +# Builder Stage: Copy node_modules from dependencies and build it FROM base as builder ARG WORKDIR WORKDIR ${WORKDIR} @@ -18,7 +21,7 @@ COPY . . COPY --from=dependencies ${WORKDIR}/node_modules node_modules RUN pnpm build -# Production image, copy all the files and run next +# Production Stage: Copy dist and package.json from builder and start the application FROM base as runner ARG WORKDIR WORKDIR ${WORKDIR} diff --git a/ci/docker-compose.yaml b/ci/docker-compose.yaml index a10c438..3ebd5da 100644 --- a/ci/docker-compose.yaml +++ b/ci/docker-compose.yaml @@ -1,6 +1,6 @@ -# For local testing docker environment -# docker build . -t "nestjs-v9-webpack-boilerplate:latest" -f ci/Dockerfile -# docker-compose -p "nftiv" -f ci/docker-compose.yaml up +# Useful Command: +# docker build . -t nestjs-v9-webpack-boilerplate:latest -f ci/Dockerfile +# docker-compose -p nest -f ci/docker-compose.yaml up version: '3.9'