Files
AI-Bill/Dockerfile
2025-11-10 13:58:06 +08:00

29 lines
842 B
Docker

# syntax=docker/dockerfile:1.7
FROM node:20-bullseye-slim AS base
ENV PNPM_HOME=/root/.local/share/pnpm
ENV PATH=$PNPM_HOME:$PATH
RUN corepack enable
FROM base AS deps
WORKDIR /app
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
COPY apps/backend/package.json ./apps/backend/
RUN pnpm install --filter backend... --frozen-lockfile
FROM deps AS build
COPY apps ./apps
RUN pnpm --filter backend build
FROM base AS runtime
WORKDIR /app
RUN apt-get update && apt-get install -y --no-install-recommends curl && rm -rf /var/lib/apt/lists/*
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
COPY apps/backend/package.json ./apps/backend/
RUN pnpm install --prod --filter backend
COPY --from=build /app/apps/backend/dist ./apps/backend/dist
WORKDIR /app/apps/backend
EXPOSE 4000
ENV NODE_ENV=production
CMD ["node", "dist/main.js"]