# 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 the internal API URL at build time via --dart-define
ARG FLUTTER_API_URL_INTERNAL=http://recipe-api:8080
RUN flutter build web --release \
    --dart-define=API_BASE_URL=${FLUTTER_API_URL_INTERNAL}

# 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"]
