diff --git a/Dockerfile b/Dockerfile index efdaad83d00..0913e7d3cd7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,23 +1,14 @@ +ARG TARGETPLATFORM + # https://github.com/hadolint/hadolint/issues/861 # hadolint ignore=DL3029 FROM --platform="${BUILDPLATFORM:-linux/amd64}" docker.io/busybox:1.37.0@sha256:a7dbc319b1438115a207e11930dc4bb3e643dcb3ec0bdd694bb36cd8fad289ec as builder -RUN mkdir /.cache && touch -t 202101010000.00 /.cache +RUN mkdir /.cache /data && touch -t 202101010000.00 /.cache ARG TARGETOS=linux ARG TARGETARCH=amd64 ARG TARGETVARIANT=v1 -# renovate: datasource=github-releases depName=grpc-ecosystem/grpc-health-probe -ARG GRPC_HEALTH_PROBE_VERSION=v0.4.57 -# Downloading grpc_health_probe from github releases with retry as we have seen it fail a lot on ci. -RUN for i in $(seq 1 50); do \ - wget -qO/bin/grpc_health_probe "https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/${GRPC_HEALTH_PROBE_VERSION}/grpc_health_probe-${TARGETOS}-${TARGETARCH}" && \ - chmod +x /bin/grpc_health_probe && \ - break; \ - echo "Failed to download grpc_health_probe on $i th attempt, retrying in 5s..." \ - sleep 5; \ - done - WORKDIR /app COPY dist dist @@ -33,7 +24,7 @@ RUN chmod +x parca # https://github.com/hadolint/hadolint/issues/861 # hadolint ignore=DL3029 -FROM --platform="${TARGETPLATFORM:-linux/amd64}" docker.io/alpine:3.24.2@sha256:294b683cb724975bec92580e1e685676bd4b50bda910ddb8c51d4cabeaec77e6 AS runner +FROM --platform="${TARGETPLATFORM}" docker.io/alpine:3.24.2@sha256:294b683cb724975bec92580e1e685676bd4b50bda910ddb8c51d4cabeaec77e6 AS runner LABEL \ org.opencontainers.image.source="https://github.com/parca-dev/parca" \ @@ -41,11 +32,10 @@ LABEL \ org.opencontainers.image.description="Continuous profiling for analysis of CPU and memory usage, down to the line number and throughout time. Saving infrastructure cost, improving performance, and increasing reliability." \ org.opencontainers.image.licenses="Apache-2.0" -RUN mkdir /data && chown nobody /data +COPY --chown=65534:0 --from=builder /data /data # hadolint ignore=DL3066 USER nobody -COPY --chown=0:0 --from=builder /bin/grpc_health_probe / COPY --chown=0:0 --from=builder /app/parca /parca COPY --chown=0:0 parca.yaml /parca.yaml diff --git a/Dockerfile.dev b/Dockerfile.dev index 780f7c71c89..9f384d7110d 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -21,16 +21,11 @@ FROM docker.io/golang:1.25.6-alpine@sha256:98e6cffc31ccc44c7c15d83df1d69891efee8 # renovate: datasource=go depName=github.com/go-delve/delve ARG DLV_VERSION=v1.26.1 -# renovate: datasource=go depName=github.com/grpc-ecosystem/grpc-health-probe -ARG GRPC_HEALTH_PROBE_VERSION=v0.4.47 - WORKDIR /app # hadolint ignore=DL3018 RUN apk update && apk add --no-cache build-base RUN go install "github.com/go-delve/delve/cmd/dlv@${DLV_VERSION}" -# hadolint ignore=DL3059 -RUN go install "github.com/grpc-ecosystem/grpc-health-probe@${GRPC_HEALTH_PROBE_VERSION}" COPY go.mod go.sum /app/ RUN go mod download -modcacherw @@ -48,7 +43,6 @@ RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -trimpath -gcflags="all=-N -l FROM docker.io/golang:1.25.6-alpine@sha256:98e6cffc31ccc44c7c15d83df1d69891efee8115a5bb7ede2bf30a38af3e3c92 COPY --from=builder /go/bin/dlv / -COPY --from=builder /go/bin/grpc-health-probe / COPY --from=builder /app/parca /parca COPY parca.yaml /parca.yaml diff --git a/Dockerfile.go.dev b/Dockerfile.go.dev index 74e376abcb0..924376b8109 100644 --- a/Dockerfile.go.dev +++ b/Dockerfile.go.dev @@ -5,16 +5,11 @@ FROM docker.io/golang:1.25.6-alpine@sha256:98e6cffc31ccc44c7c15d83df1d69891efee8 # renovate: datasource=go depName=github.com/go-delve/delve ARG DLV_VERSION=v1.26.1 -# renovate: datasource=go depName=github.com/grpc-ecosystem/grpc-health-probe -ARG GRPC_HEALTH_PROBE_VERSION=v0.4.47 - WORKDIR /app # hadolint ignore=DL3018 RUN apk update && apk add --no-cache build-base RUN go install "github.com/go-delve/delve/cmd/dlv@${DLV_VERSION}" -# hadolint ignore=DL3059 -RUN go install "github.com/grpc-ecosystem/grpc-health-probe@${GRPC_HEALTH_PROBE_VERSION}" COPY go.mod go.sum /app/ RUN go mod download -modcacherw @@ -39,7 +34,6 @@ RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -gcflags="all=-N -l" -o parca FROM docker.io/golang:1.25.6-alpine@sha256:98e6cffc31ccc44c7c15d83df1d69891efee8115a5bb7ede2bf30a38af3e3c92 COPY --from=builder /go/bin/dlv / -COPY --from=builder /go/bin/grpc-health-probe / COPY --from=builder /app/parca /parca COPY parca.yaml /parca.yaml diff --git a/deploy/lib/parca/parca.libsonnet b/deploy/lib/parca/parca.libsonnet index 9eeee432077..ae755c5568b 100644 --- a/deploy/lib/parca/parca.libsonnet +++ b/deploy/lib/parca/parca.libsonnet @@ -161,14 +161,14 @@ function(params) { terminationMessagePolicy: 'FallbackToLogsOnError', livenessProbe: if prc.config.livenessProbe == true then { initialDelaySeconds: 5, - exec: { - command: ['/grpc_health_probe', '-v', '-addr=:' + prc.config.port], + grpc: { + port: prc.config.port, }, }, readinessProbe: if prc.config.readinessProbe == true then { initialDelaySeconds: 10, - exec: { - command: ['/grpc_health_probe', '-v', '-addr=:' + prc.config.port], + grpc: { + port: prc.config.port, }, }, }; diff --git a/renovate.json b/renovate.json index b10cbd35e18..476c93d90fe 100644 --- a/renovate.json +++ b/renovate.json @@ -29,13 +29,6 @@ "matchSourceUrls": ["https://github.com/grpc-ecosystem/grpc-gateway"], "groupName": "grpc-gateway" }, - { - "description": "Group grpc-health-probe packages", - "matchSourceUrls": [ - "https://github.com/grpc-ecosystem/grpc-health-probe" - ], - "groupName": "grpc-health-probe" - }, { "description": "Group protobuf-ts packages", "matchSourceUrls": ["https://github.com/timostamm/protobuf-ts"],