FROM node:22-alpine AS base WORKDIR /app ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" RUN corepack enable FROM base AS deps COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./ RUN pnpm install --frozen-lockfile FROM deps AS build COPY . . RUN pnpm build FROM deps AS dev ENV NODE_ENV=development COPY .docker/dev-start.sh /usr/local/bin/docker-dev-start RUN chmod +x /usr/local/bin/docker-dev-start EXPOSE 20013 CMD ["docker-dev-start"] FROM base AS prod-deps COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./ RUN pnpm install --frozen-lockfile --prod FROM node:22-alpine AS runner WORKDIR /app ENV NODE_ENV=production ENV NITRO_HOST=0.0.0.0 ENV PORT=20013 COPY --from=prod-deps /app/node_modules ./node_modules COPY --from=build /app/.output ./.output COPY --from=build /app/package.json ./package.json EXPOSE 20013 CMD ["node", ".output/server/index.mjs"]