Patchpass V1
This commit is contained in:
+46
@@ -0,0 +1,46 @@
|
||||
FROM node:24-bookworm-slim AS build
|
||||
|
||||
ENV PNPM_HOME="/pnpm"
|
||||
ENV PATH="$PNPM_HOME:$PATH"
|
||||
|
||||
RUN corepack enable && corepack prepare pnpm@11.5.2 --activate
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends openssl && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY Backend/package.json Backend/pnpm-workspace.yaml ./Backend/
|
||||
COPY UI/package.json UI/pnpm-workspace.yaml ./UI/
|
||||
|
||||
# Install in separate layers to keep peak memory low.
|
||||
RUN cd Backend && pnpm install
|
||||
RUN cd UI && pnpm install
|
||||
|
||||
COPY . .
|
||||
|
||||
# Build the frontend, then generate the Prisma client and compile the backend.
|
||||
RUN cd UI && pnpm run build
|
||||
RUN cd Backend && DATABASE_URL=postgresql://x:x@localhost/x pnpm run generate && pnpm run build
|
||||
|
||||
FROM node:24-bookworm-slim AS runtime
|
||||
|
||||
ENV NODE_ENV=production
|
||||
ENV PNPM_HOME="/pnpm"
|
||||
ENV PATH="$PNPM_HOME:$PATH"
|
||||
|
||||
RUN corepack enable && corepack prepare pnpm@11.5.2 --activate
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends openssl && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY Backend/package.json Backend/pnpm-workspace.yaml Backend/prisma.config.ts ./Backend/
|
||||
COPY Backend/prisma ./Backend/prisma
|
||||
|
||||
RUN cd Backend && pnpm install --prod && DATABASE_URL=postgresql://x:x@localhost/x pnpm run generate
|
||||
|
||||
COPY --from=build /app/Backend/dist ./Backend/dist
|
||||
COPY --from=build /app/UI/build ./UI/build
|
||||
|
||||
EXPOSE 5000
|
||||
|
||||
# Apply migrations on boot, then start the API (which also serves the UI build).
|
||||
CMD ["sh", "-c", "cd /app/Backend && pnpm migrate:deploy && cd dist && node index.js"]
|
||||
Reference in New Issue
Block a user