# syntax=docker/dockerfile:1.7 FROM node:24-alpine AS build WORKDIR /app COPY package.json package-lock.json ./ COPY server/package.json ./server/package.json RUN npm ci --include-workspace-root COPY index.html ./ COPY src ./src COPY public ./public ARG VITE_API_URL=/api/v1 ENV VITE_API_URL=${VITE_API_URL} RUN npm run build FROM nginx:1.29-alpine AS runtime COPY deploy/nginx/default.conf.template /etc/nginx/templates/default.conf.template COPY --from=build /app/dist /usr/share/nginx/html EXPOSE 80 HEALTHCHECK --interval=15s --timeout=3s --start-period=10s --retries=5 \ CMD wget -qO- http://127.0.0.1/health/live >/dev/null || exit 1