FROM node:22-alpine AS builder WORKDIR /app # Install dependencies first (better layer caching) COPY package.json package-lock.json ./ RUN npm ci # Copy source and build COPY . . ENV DATABASE_URL="postgresql://dummy:dummy@localhost:5432/dummy" ENV BETTER_AUTH_SECRET="build-time-placeholder-not-used" RUN npm run build # Production image FROM node:22-alpine WORKDIR /app # Only copy what we need for production COPY --from=builder /app/build ./build COPY --from=builder /app/package.json ./ COPY --from=builder /app/package-lock.json ./ # Install production dependencies only (including dotenv) RUN npm ci --omit=dev ENV HOST=0.0.0.0 ENV PORT=3001 EXPOSE 3001 CMD ["node", "-r", "dotenv/config", "build"]