##### DEPENDENCIES FROM --platform=linux/amd64 node:20-alpine AS deps RUN apk add --no-cache libc6-compat openssl WORKDIR /app # Install Prisma Client - remove if not using Prisma COPY prisma ./ # Install dependencies based on the preferred package manager COPY package.json bun.lock . RUN npm i ##### BUILDER FROM --platform=linux/amd64 node:20-alpine AS builder ARG DATABASE_URL ARG NEXT_PUBLIC_CLIENTVAR WORKDIR /app COPY --from=deps /app/node_modules ./node_modules COPY . . # ENV NEXT_TELEMETRY_DISABLED 1 RUN npx prisma generate && npm run build && npm cache clean --force ##### RUNNER FROM --platform=linux/amd64 gcr.io/distroless/nodejs20-debian12 AS runner WORKDIR /app ENV NODE_ENV production # ENV NEXT_TELEMETRY_DISABLED 1 COPY --from=builder /app/next.config.js ./ COPY --from=builder /app/public ./public COPY --from=builder /app/package.json ./package.json COPY --from=builder /app/.next/standalone ./ COPY --from=builder /app/.next/static ./.next/static EXPOSE 3000 ENV PORT 3000 CMD ["server.js"]