# syntax=docker/dockerfile:1.7 FROM oven/bun:1.3 AS deps WORKDIR /app # Workspace manifests first for better layer caching. COPY package.json bun.lock ./ COPY apps/frontend/package.json apps/frontend/package.json COPY packages/api-contract/package.json packages/api-contract/package.json RUN bun install --frozen-lockfile FROM deps AS build WORKDIR /app COPY apps/frontend apps/frontend COPY packages/api-contract packages/api-contract # Build-time variables for Vite. ARG VITE_API_BASE_URL=http://localhost:3000 ARG VITE_SUPABASE_URL= ARG VITE_SUPABASE_ANON_KEY= ENV VITE_API_BASE_URL=${VITE_API_BASE_URL} ENV VITE_SUPABASE_URL=${VITE_SUPABASE_URL} ENV VITE_SUPABASE_ANON_KEY=${VITE_SUPABASE_ANON_KEY} RUN bun --filter frontend build FROM nginx:1.27-alpine AS runner WORKDIR /usr/share/nginx/html COPY apps/frontend/nginx.conf /etc/nginx/conf.d/default.conf COPY --from=build /app/apps/frontend/dist ./ EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]