# Versions d'images épinglées (mêmes bases que Logstream) : à mettre à jour volontairement. # ---- Build ---- FROM golang:1.27.1-alpine3.24 AS build WORKDIR /src COPY go.mod go.sum ./ RUN go mod download COPY cmd ./cmd COPY internal ./internal COPY web ./web ARG VERSION=dev RUN CGO_ENABLED=0 go build -trimpath -ldflags="-s -w -X main.version=${VERSION}" \ -o /out/pve-confsync ./cmd/pve-confsync # ---- Image finale ---- FROM alpine:3.24.2 RUN apk add --no-cache ca-certificates \ && adduser -D -H -u 10001 confsync \ && mkdir /data /config && chown confsync /data COPY --from=build /out/pve-confsync /usr/local/bin/pve-confsync USER confsync WORKDIR /data VOLUME /data ENV CONFSYNC_CONFIG=/config/confsync.yaml DATA_DIR=/data LISTEN=:8080 EXPOSE 8080 HEALTHCHECK --interval=30s --timeout=3s CMD wget -qO- http://127.0.0.1:8080/healthz || exit 1 ENTRYPOINT ["/usr/local/bin/pve-confsync"] # interface web ; la CLI reste disponible : docker compose run --rm confsync diff CMD ["serve"]