# Stage 1: Build
FROM node:22-alpine AS builder

WORKDIR /app

# Install dependencies
COPY package.json pnpm-lock.yaml* ./
RUN npm install -g pnpm@10.6.5
RUN pnpm install

# Copy source
COPY package.json tsconfig.json ./
COPY src ./src

# Skip TypeScript build for now
# RUN pnpm add -D typescript && pnpm build

# Stage 2: Run
FROM node:22-alpine AS runner

WORKDIR /app

# Install dependencies
COPY package.json pnpm-lock.yaml* ./
RUN npm install -g pnpm@10.6.5
RUN pnpm install --prod --ignore-scripts
RUN npm install -g tsx
RUN apk add --no-cache curl

# Copy source
COPY package.json tsconfig.json ./
COPY src ./src

# Set environment
ENV NODE_ENV=production
ENV PORT=4004

EXPOSE 4004

CMD ["tsx", "src/server.js"]
