# -------- BUILD STAGE --------
FROM node:22-alpine AS builder

WORKDIR /app

# Install dependencies
COPY package*.json ./
RUN npm ci

# Copy source code
COPY . .

# Build Adonis app ignoring TS errors
RUN node ace build --ignore-ts-errors

# -------- PRODUCTION STAGE --------
FROM node:22-alpine

WORKDIR /app

# Install PM2 globally
RUN npm install -g pm2

# Install production dependencies
COPY package*.json ./
RUN npm ci --omit=dev

# Copy build
COPY --from=builder /app/build ./build
COPY ecosystem.config.js .

# Set environment
ENV NODE_ENV=development
ENV HOST=0.0.0.0
ENV PORT=5181

EXPOSE 5181

CMD ["pm2-runtime", "ecosystem.config.js"]
