From 77af001af640e066e80508d2749e1f290161c27c Mon Sep 17 00:00:00 2001 From: jknapp Date: Thu, 13 Aug 2026 21:39:14 -0700 Subject: [PATCH] fix(ols): pin procps explicitly for pgrep dependency MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit entrypoint-shared-ols.sh's ols_running() liveness check now shells out to pgrep, but procps was never in Dockerfile.shared-ols's apt-get install list — pgrep works today only because Ubuntu 24.04's base image pulls procps in transitively. If that stops being true, pgrep: command not found -> exit 127 -> ols_running() false forever -> the crash-loop breaker (MAX_STARTS/WINDOW) escalates to a hard exit 1 at boot. Make the dependency explicit so it can't be pruned as unused. --- Dockerfile.shared-ols | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Dockerfile.shared-ols b/Dockerfile.shared-ols index 074497d..fea15f6 100644 --- a/Dockerfile.shared-ols +++ b/Dockerfile.shared-ols @@ -24,9 +24,13 @@ FROM litespeedtech/openlitespeed:${OLS_VERSION}-lsphp${PHPVER} ## - gettext-base: envsubst for render-shared-ols-config.sh ## - openssl: self-signed cert for the :443 listener (HAProxy verifies none) ## - curl/ca-certificates: HEALTHCHECK +## - procps: provides pgrep, which entrypoint-shared-ols.sh's ols_running() +## liveness check depends on. Only transitively present via the base image +## today (Ubuntu 24.04 pulls it in) — pin it explicitly so it can't be +## pruned as "unused" and silently break the supervisor's crash detection. RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - inotify-tools gettext-base openssl ca-certificates curl && \ + inotify-tools gettext-base openssl ca-certificates curl procps && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/*