FROM node:24-alpine AS base WORKDIR /app RUN corepack enable && corepack prepare pnpm@latest --activate FROM base AS builder WORKDIR /app RUN apk add --no-cache python3 make g++ libc6-compat COPY package.json pnpm-lock.yaml ./ RUN --mount=type=cache,id=pnpm,target=/root/.local/share/pnpm/store \ pnpm install --frozen-lockfile || pnpm install COPY . . RUN pnpm run build RUN pnpm prune --prod FROM node:24-alpine AS runtime WORKDIR /app RUN apk add --no-cache libc6-compat vips COPY --from=builder /app/node_modules ./node_modules COPY --from=builder /app/dist ./dist COPY --from=builder /app/drizzle ./drizzle COPY --from=builder /app/scripts ./scripts COPY package.json ./ ENV HOST=0.0.0.0 ENV PORT=4321 EXPOSE 4321 CMD ["sh", "-c", "node ./scripts/migrate.js && node ./dist/server/entry.mjs"]