# syntax=docker/dockerfile:1 FROM node:24-alpine AS base ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" RUN corepack enable && corepack prepare pnpm@11.15.1 --activate FROM base AS dependencies WORKDIR /app COPY package.json pnpm-lock.yaml pnpm-workspace.yaml .npmrc ./ RUN pnpm install --frozen-lockfile FROM dependencies AS build COPY . . RUN pnpm build && pnpm prune --prod --ignore-scripts FROM node:24-alpine AS runtime WORKDIR /app ENV NODE_ENV="production" ENV HOST="0.0.0.0" ENV PORT="3000" COPY --from=build --chown=node:node /app/package.json ./ COPY --from=build --chown=node:node /app/node_modules ./node_modules COPY --from=build --chown=node:node /app/build ./build USER node EXPOSE 3000 CMD ["node", "build/index.js"]