# Stage 1: Build Image FROM node:22-alpine AS build WORKDIR /app COPY package*.json ./ RUN npm install COPY . . RUN npm run build -- --mode docker # Stage 2, use the compiled app, ready for production with caddy FROM caddy:latest COPY ops/docker/caddy/Caddyfile /etc/caddy/Caddyfile COPY --from=build /app/dist /app COPY ops/docker/entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh EXPOSE 80 ENTRYPOINT ["/bin/sh", "/entrypoint.sh"]