FROM node:lts-alpine AS base WORKDIR /app RUN npm i -g pnpm FROM base AS prod-deps WORKDIR /app RUN apk add --no-cache python3 make g++ COPY package.json pnpm-lock.yaml ./ RUN pnpm install --prod --frozen-lockfile FROM base AS build-deps WORKDIR /app RUN apk add --no-cache python3 make g++ COPY package.json pnpm-lock.yaml ./ RUN pnpm install --frozen-lockfile FROM build-deps AS builder WORKDIR /app COPY . . RUN pnpm run build FROM base AS runtime WORKDIR /app COPY --from=prod-deps /app/node_modules ./node_modules COPY --from=builder /app/dist ./dist COPY package.json ./ ENV HOST=0.0.0.0 ENV PORT=4321 EXPOSE 4321 CMD ["node", "./dist/server/entry.mjs"]