26 lines
647 B
Docker
26 lines
647 B
Docker
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"]
|