# -------- Dockerfile (Multi-Stage Build) --------
# 1. Builder-Stage
FROM golang:1.24-alpine AS builder

WORKDIR /app
COPY go.* ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o /bin/ipblock-api

# 2. Runtime-Stage
FROM alpine:3.20

# HTTPS-Callouts in Alpine brauchen ca-certificates
RUN apk add --no-cache ca-certificates

COPY --from=builder /bin/ipblock-api /bin/ipblock-api

# Default listens on :8080 – siehe main.go
EXPOSE 8080

# Environment defaults; können per compose überschrieben werden
ENV REDIS_ADDR=redis:6379 \
    TTL_HOURS=720

ENTRYPOINT ["/bin/ipblock-api"]
