# =============================================================================
# MOPC Platform - Development Dockerfile (Pre-built)
# =============================================================================

FROM node:22-alpine

WORKDIR /app

# Install dependencies for Prisma and development
RUN apk add --no-cache libc6-compat openssl

# Copy package files
COPY package.json package-lock.json* ./

# Install dependencies
RUN npm install && npm install tailwindcss-animate

# Copy prisma schema for generation
COPY prisma ./prisma

# Generate Prisma client
RUN npx prisma generate

# Copy the rest of the application
COPY . .

# Build the application at build time (pre-compile everything)
# Dummy env vars needed so Next.js can collect page data without MinIO throwing
ENV MINIO_ACCESS_KEY=build-placeholder
ENV MINIO_SECRET_KEY=build-placeholder
RUN npm run build
# Clear build-time placeholders (runtime uses real values from docker-compose)
ENV MINIO_ACCESS_KEY=
ENV MINIO_SECRET_KEY=

# Expose port
EXPOSE 3000

# Start production server (uses pre-built files)
CMD ["npm", "start"]
