# Build stage FROM node:20-alpine AS builder WORKDIR /app # Copy package files COPY package*.json ./ COPY bun.lockb ./ # Install dependencies RUN npm install # Copy source code COPY . . # Build the application RUN npm run build # Production stage - Using Caddy FROM caddy:2-alpine AS production # Copy built assets from builder stage COPY --from=builder /app/dist /srv # Copy Caddyfile COPY Caddyfile /etc/caddy/Caddyfile # Expose port 80 EXPOSE 80 # Start Caddy CMD ["caddy", "run", "--config", "/etc/caddy/Caddyfile"]