# Development stage
FROM node:24-alpine AS dev

WORKDIR /app

COPY package*.json ./
RUN npm install

COPY . .

EXPOSE 4000

CMD ["npm", "run", "dev"]

# Build stage
FROM node:24-alpine AS builder

WORKDIR /app

COPY package*.json ./
RUN npm install

COPY . .
RUN node ace build --ignore-ts-errors

# Production stage
FROM node:24-alpine AS prod

WORKDIR /app

# Copy compiled output
COPY --from=builder /app/build ./

# Install production deps only (assembler copies package.json into build/)
RUN npm ci --omit=dev

EXPOSE 3333

CMD ["node", "bin/server.js"]
