# ---------- Build Stage ----------
FROM node:20-alpine AS builder

ARG NUXT_PUBLIC_GIT_COMMIT
ARG NUXT_PUBLIC_GIT_TAG
ARG NUXT_PUBLIC_GIT_BRANCH

ENV NUXT_PUBLIC_GIT_COMMIT=$NUXT_PUBLIC_GIT_COMMIT
ENV NUXT_PUBLIC_GIT_TAG=$NUXT_PUBLIC_GIT_TAG
ENV NUXT_PUBLIC_GIT_BRANCH=$NUXT_PUBLIC_GIT_BRANCH

WORKDIR /app

# Copy package files
COPY package*.json ./

# Install dependencies
RUN npm install

# Copy project files
ARG CACHEBUST=1
COPY . .

# Build the Nuxt app
RUN npm run build

# ---------- Production Stage ----------
FROM node:20-alpine

WORKDIR /app

# Copy built output
COPY --from=builder /app/.output ./.output

# Expose Nuxt port
EXPOSE 3000

# Start Nuxt production server
CMD ["node", ".output/server/index.mjs"]
