# Build stage
FROM node:20-alpine AS builder
WORKDIR /app
# Enable Corepack so we can use Yarn v4
RUN corepack enable && corepack prepare yarn@stable --activate
# Force Yarn to use node_modules instead of PnP
ENV YARN_NODE_LINKER=node-modules
COPY package.json yarn.lock ./
RUN yarn install --immutable
COPY . .
RUN yarn build

# Production stage - Caddy
FROM caddy:2-alpine

WORKDIR /usr/share/caddy

# Copy built static files from the builder stage
COPY --from=builder /app/dist .

# Copy our local Caddyfile config
COPY Caddyfile /etc/caddy/Caddyfile

EXPOSE 3000

# Start caddy using the config file
CMD ["caddy", "run", "--config", "/etc/caddy/Caddyfile", "--adapter", "caddyfile"]
