# Generic runtime base image for all Foxhunt service pods # Contains: rclone (S3 binary fetch), grpc_health_probe (K8s health checks) # Base: Ubuntu 24.04 (glibc 2.39) — matches compile environment # Binaries are fetched by initContainer at pod startup, not baked into this image. # Rebuild: only when system deps change (libssl, rclone, grpc_health_probe) FROM ubuntu:24.04 RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates \ libssl3t64 \ curl \ jq \ unzip \ passwd \ && curl -fsSL https://downloads.rclone.org/v1.69.1/rclone-v1.69.1-linux-amd64.zip -o /tmp/rclone.zip \ && unzip -j /tmp/rclone.zip '*/rclone' -d /usr/local/bin/ \ && rm /tmp/rclone.zip \ && apt-get purge -y unzip \ && rm -rf /var/lib/apt/lists/* # grpc_health_probe for Kubernetes health checks RUN curl -fsSL https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/v0.4.25/grpc_health_probe-linux-amd64 \ -o /usr/local/bin/grpc_health_probe \ && chmod +x /usr/local/bin/grpc_health_probe # kubectl for CI deploy step (rollout restart) RUN curl -fsSL "https://dl.k8s.io/release/v1.31.4/bin/linux/amd64/kubectl" \ -o /usr/local/bin/kubectl \ && chmod +x /usr/local/bin/kubectl # Ubuntu 24.04 ships with ubuntu:ubuntu (UID/GID 1000) — rename instead of creating RUN usermod -l foxhunt ubuntu && groupmod -n foxhunt ubuntu USER foxhunt