# Stage 1: Build Stage FROM node:22 AS builder # Set npm registry to Tencent Cloud and install pnpm globally RUN npm config set registry https://mirrors.cloud.tencent.com/npm/ \ && npm install -g pnpm@latest # Set the working directory inside the container WORKDIR /usr/src/app # Copy package.json and pnpm-lock.yaml to the working directory COPY package.json pnpm-lock.yaml ./ # Install all dependencies (including dev dependencies) RUN pnpm install # Copy the rest of the application files COPY . . # Build the NestJS application RUN pnpm run build # Stage 2: Production Stage FROM node:22 AS production # Set npm registry to Tencent Cloud and install pnpm globally RUN npm config set registry https://mirrors.cloud.tencent.com/npm/ \ && npm install -g pnpm@latest # Set the working directory inside the container WORKDIR /usr/src/app # Copy the build output and production dependencies from the build stage COPY --from=builder /usr/src/app/dist ./dist COPY --from=builder /usr/src/app/package.json /usr/src/app/pnpm-lock.yaml ./ # Install only production dependencies RUN pnpm install --prod # Expose the application port EXPOSE 3000 # Command to run the application CMD ["node", "dist/main"]