FROM node:23-slim AS base ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" RUN corepack enable RUN apt-get update && apt-get install -y openssl fontconfig RUN fc-cache -f -v RUN pnpm i -g prisma prisma-kysely WORKDIR /app COPY . . FROM base AS build RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile RUN pnpm prisma generate RUN pnpm run build FROM base AS deps RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile FROM node:23-slim AS prod ENV NODE_ENV=production WORKDIR /app COPY --from=deps /app/node_modules /app/node_modules COPY --from=build /app/node_modules/.prisma /app/node_modules/.prisma COPY --from=build /app/dist /app/dist COPY --from=build /app/prisma /app/prisma COPY --from=build /app/static /app/static COPY entrypoint.sh . RUN chmod u+x ./entrypoint.sh ENTRYPOINT ["./entrypoint.sh"]