FROM golang:1.26-alpine AS builder

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

# Re-use CI-built binary if present, otherwise build
ARG BINARY_PATH=
RUN if [ -n "$BINARY_PATH" ] && [ -f "$BINARY_PATH" ]; then \
      cp "$BINARY_PATH" worker; \
    else \
      CGO_ENABLED=0 GOOS=linux go build -o worker ./cmd/worker; \
    fi

FROM alpine:3.20
RUN apk --no-cache add ca-certificates
WORKDIR /app
COPY --from=builder /app/worker .
ENTRYPOINT ["./worker"]
