diff --git a/Dockerfile b/Dockerfile index 64a266f..75f7b7f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,16 +1,37 @@ -FROM golang:1.25-alpine AS builder +FROM golang:1.25-alpine AS builder-base WORKDIR /app -COPY go.mod ./ +COPY go.mod go.sum ./ RUN go mod download COPY . . +# Collector build (no CGO needed) +FROM builder-base AS builder-collector + RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o /resource-collector ./cmd/collector -FROM alpine:3.19 +# Receiver build (CGO needed for SQLite) +FROM builder-base AS builder-receiver -COPY --from=builder /resource-collector /usr/local/bin/resource-collector +RUN apk add --no-cache gcc musl-dev +RUN CGO_ENABLED=1 GOOS=linux go build -ldflags="-s -w" -o /metrics-receiver ./cmd/receiver + +# Collector image +FROM alpine:3.19 AS collector + +COPY --from=builder-collector /resource-collector /usr/local/bin/resource-collector ENTRYPOINT ["/usr/local/bin/resource-collector"] + +# Receiver image +FROM alpine:3.19 AS receiver + +RUN apk add --no-cache sqlite-libs + +COPY --from=builder-receiver /metrics-receiver /usr/local/bin/metrics-receiver + +EXPOSE 8080 + +ENTRYPOINT ["/usr/local/bin/metrics-receiver"]