From d6356e772c0f7b971dec1658a33adad94abf532e Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Wed, 1 Jul 2026 15:51:08 +0000 Subject: [PATCH] feat(ubuntu-dev): bake python3.8 + log-replay test venv The eloqkv CI needs python3.8 and the log_replay_test dependencies (async-timeout, psutil, redis). Bake them into a venv at /opt/eloq/log-replay-venv (exposed via $LOG_REPLAY_VENV) so CI never apt/pip-installs them at runtime. Co-Authored-By: Claude Opus 4.8 (1M context) --- ubuntu-dev/Dockerfile | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/ubuntu-dev/Dockerfile b/ubuntu-dev/Dockerfile index 69d4512..b85cdbf 100644 --- a/ubuntu-dev/Dockerfile +++ b/ubuntu-dev/Dockerfile @@ -32,6 +32,20 @@ RUN curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg \ && apt-get update && apt-get install -y --no-install-recommends google-cloud-cli \ && rm -rf /var/lib/apt/lists/* +# Python 3.8 + the log-replay test dependencies used by the eloqkv CI, baked +# into a venv so the CI never has to apt-install python or pip-install at runtime. +# Consumers activate it via $LOG_REPLAY_VENV/bin/activate. +RUN apt-get update && apt-get install -y --no-install-recommends software-properties-common \ + && add-apt-repository -y ppa:deadsnakes/ppa \ + && apt-get update && apt-get install -y --no-install-recommends \ + python3.8 python3.8-venv python3.8-dev \ + && python3.8 -m venv /opt/eloq/log-replay-venv \ + && /opt/eloq/log-replay-venv/bin/pip install --no-cache-dir \ + async-timeout==4.0.3 psutil==5.9.5 redis==5.0.3 \ + && chown -R root:sudo /opt/eloq && chmod -R g+rwX /opt/eloq \ + && rm -rf /var/lib/apt/lists/* +ENV LOG_REPLAY_VENV=/opt/eloq/log-replay-venv + # Non-root user with passwordless sudo (no password is baked into the image). RUN useradd -rm -s /bin/bash -g sudo eloq \ && echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers \