# Stage 1 – Build Flutter web FROM ghcr.io/cirruslabs/flutter:stable AS builder WORKDIR /app COPY pubspec.yaml pubspec.lock* ./ RUN flutter pub get COPY . . # Inject API base URL at build time via --dart-define. # Default to same-origin /api to avoid mixed-content in HTTPS deployments. ARG API_BASE_URL=/api RUN flutter build web --release \ --dart-define=API_BASE_URL=${API_BASE_URL} # Stage 2 – Serve with Caddy FROM caddy:alpine AS runner ARG PORT=5000 ENV PORT=${PORT} COPY --from=builder /app/build/web /usr/share/caddy COPY Caddyfile /etc/caddy/Caddyfile EXPOSE ${PORT} CMD ["caddy", "run", "--config", "/etc/caddy/Caddyfile", "--adapter", "caddyfile"]