FROM golang:1.22-alpine AS build WORKDIR /build COPY go.mod go.sum ./ RUN go mod download COPY . . RUN CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o shelly-exporter . FROM alpine:3.20 RUN apk add --no-cache ca-certificates \ && addgroup -S exporter \ && adduser -S -G exporter exporter WORKDIR /opt/shelly-exporter COPY --from=build /build/shelly-exporter ./shelly-exporter COPY config.example.yaml ./config.yaml USER exporter EXPOSE 9090 HEALTHCHECK --interval=30s --timeout=3s --start-period=5s \ CMD wget -q -O - http://127.0.0.1:9090/-/healthy || exit 1 ENTRYPOINT ["./shelly-exporter"] CMD ["-config", "config.yaml"]