Cấu hình Dockerfile cho nestjs với pnpm

, ,

・Published on:

Dockerfile

FROM node:24-alpine AS base

ENV NODE_ENV=production
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"

RUN corepack enable

WORKDIR /app

COPY package.json pnpm-lock.yaml ./

FROM base AS prod-dependencies

RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile

FROM base AS builder

WORKDIR /app

COPY package.json pnpm-lock.yaml tsconfig.build.json tsconfig.json ./
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
COPY src src

RUN npm run build

FROM base AS runner

WORKDIR /app

COPY --from=prod-dependencies /app/node_modules ./node_modules
COPY --from=base /app/package.json ./
COPY --from=builder /app/dist ./dist

EXPOSE 3000

CMD [ "npm", "run", "start:prod" ]
  • Kết quả của docker container