catalog / docker.io/grafana/loki / criteria

loki — validation criteria

Per-image acceptance criteria for the docker.io/grafana/loki profile. Validated against …@sha256:191d4fd… (tag 3.7.2), derived by drop-test. loki already runs cap_drop: ALL and as a non-root user (uid 10001), so there is no capability reduction to derive — this profile covers the filesystem dimension.

Representative workload / correctness check

profiles/workloads/loki.sh drives loki's real read+write path, not liveness: push a log line to /loki/api/v1/push (HTTP 204) and query it back from /loki/api/v1/query_range (the line is returned from the ingester).

loki is distroless (no shell, no curl), so docker exec <loki> has nothing to run. It is probed from a sidecar container that shares loki's network namespace (docker run --network container:<loki> + a pinned multi-arch curl) and reaches it on localhost:3100. This is why a sidecar and not a host-side probe: it works uniformly for any target network mode and independent of where the docker daemon runs, and it never touches loki's filesystem — no confound for the fs dimension. The reusable helper lives in container-sec-derive at testdata/drop-test/correctness/lib/sidecar.sh.

capabilities — derived by drop-test

filesystem — derived by drop-test

Scope (run_config + out-of-band conditions)