# Shared Bun stage for frontend dependencies and sources FROM oven/bun:1 AS bun-base WORKDIR /app COPY package.json bun.lock /app/ COPY frontend/package.json /app/frontend/ WORKDIR /app/frontend RUN bun install COPY ./frontend /app/frontend ARG VITE_API_URL # Development stage for docker compose watch + Vite HMR FROM bun-base AS dev-stage EXPOSE 80 CMD ["bun", "run", "dev", "--host", "0.0.0.0", "--port", "80"] # Build stage for production assets FROM bun-base AS build-stage RUN bun run build # Production stage serving compiled assets with Nginx FROM nginx:1 COPY --from=build-stage /app/frontend/dist/ /usr/share/nginx/html COPY ./frontend/nginx.conf /etc/nginx/conf.d/default.conf COPY ./frontend/nginx-backend-not-found.conf /etc/nginx/extra-conf.d/backend-not-found.conf