ARG GO_VERSION=1.26.2

FROM golang:${GO_VERSION}-bookworm AS builder

WORKDIR /src

# bimg uses CGO and needs libvips headers while building.
RUN apt-get update && apt-get install -y --no-install-recommends \
    ca-certificates \
    git \
    pkg-config \
    libvips-dev \
    && rm -rf /var/lib/apt/lists/*

COPY go.mod go.sum ./
RUN go mod download

COPY . .

RUN CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -o /bin/ginimageapi .

FROM debian:bookworm-slim AS runtime

WORKDIR /app

# libvips runtime is required by bimg.
RUN apt-get update && apt-get install -y --no-install-recommends \
    ca-certificates \
    libvips \
    && rm -rf /var/lib/apt/lists/*

COPY --from=builder /bin/ginimageapi /app/ginimageapi
COPY --from=builder /src/static /app/static

EXPOSE 8080

CMD ["/app/ginimageapi"]
