# Stage 1: build
FROM golang:1.22-alpine AS builder
WORKDIR /app

# Cache dependency downloads separately from source changes.
COPY go.mod go.sum ./
RUN go mod download

COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o queue .

# Stage 2: minimal runtime image
# alpine (not scratch) so the filesystem supports the bbolt DB file at /data.
FROM alpine:3.19
RUN mkdir -p /data
COPY --from=builder /app/queue /queue
EXPOSE 8080
ENTRYPOINT ["/queue"]
