Use the latest bookworm image and update ores-legacy.
Description
Details
| Status | Subtype | Assigned | Task | ||
|---|---|---|---|---|---|
| Open | None | T398948 Q1 FY2025-26 Goal: Operational Excellence - LiftWing Platform Updates & Improvements | |||
| Resolved | isarantopoulos | T400144 Upgrade remaining model servers from debian bullseye to bookworm | |||
| Resolved | gkyziridis | T400348 Upgrade ores-legacy from debian bullseye to bookworm |
Event Timeline
Change #1172612 had a related patch set uploaded (by Gkyziridis; author: Gkyziridis):
[machinelearning/liftwing/inference-services@main] ores-legacy-model: Update base image from bullseye to the latest bookworm image.
Testing Bookworm on ores-legacy model
Try to build the image with the current buildkit: buildkit:v0.15.0 and bullseye base image: bullseye:20231015
=> CANCELED [build 2/8] RUN apt-get update && apt-get install -y "python3-pip" "python3-dev" "build-essential" "git" "wget" && rm -rf /var/lib/apt/lists/* 17.5s => ERROR [production 2/6] RUN apt-get update && apt-get install -y "python3" "python3-distutils" "build-essential" "wmf-certificates" && rm -rf /var/lib/apt/lists/* 17.5s ------ > [production 2/6] RUN apt-get update && apt-get install -y "python3" "python3-distutils" "build-essential" "wmf-certificates" && rm -rf /var/lib/apt/lists/*: 0.644 Get:1 http://security.debian.org/debian-security bullseye-security InRelease [27.2 kB] 0.779 Get:2 http://mirrors.wikimedia.org/debian bullseye InRelease [116 kB] 0.794 Get:3 http://apt.wikimedia.org/wikimedia bullseye-wikimedia InRelease [153 kB] 1.599 Get:4 http://mirrors.wikimedia.org/debian bullseye-updates InRelease [44.0 kB] 1.719 Get:5 http://security.debian.org/debian-security bullseye-security/main amd64 Packages [387 kB] 1.764 Ign:6 http://mirrors.wikimedia.org/debian bullseye-backports InRelease 2.035 Err:7 http://mirrors.wikimedia.org/debian bullseye-backports Release 2.035 404 Not Found [IP: 208.80.154.139 80] 2.805 Get:8 http://mirrors.wikimedia.org/debian bullseye/main amd64 Packages [8066 kB] 4.596 Get:9 http://apt.wikimedia.org/wikimedia bullseye-wikimedia/main amd64 Packages [74.6 kB] 16.33 Get:10 http://mirrors.wikimedia.org/debian bullseye-updates/main amd64 Packages [18.8 kB] 16.92 Reading package lists... 17.36 E: The repository 'http://mirrors.wikimedia.org/debian bullseye-backports Release' does not have a Release file. ------ ERROR: failed to solve: process "/bin/sh -c apt-get update && apt-get install -y \"python3\" \"python3-distutils\" \"build-essential\" \"wmf-certificates\" && rm -rf /var/lib/apt/lists/*" did not complete successfully: exit code: 100 View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/z0wqe6yy1zvp6zd3nd5jfzec3
Testing it using buildkit:v0.15.0 and bookworm: bookworm:20250720:
docker build --target production -f .pipeline/ores-legacy/blubber.yaml -t ores:prod . [+] Building 2.5s (15/21) docker:default => [internal] load build definition from blubber.yaml => => transferring dockerfile: => resolve image config for docker-image://docker-registry.wikimedia.org/repos/releng/blubber/buildkit:v0.15.0 => CACHED docker-image://docker-registry.wikimedia.org/repos/releng/blubber/buildkit:v0.15.0@sha256:9c0fab32c5c9e0e1686610a3444b7036c7d7d76ab0f23da35142efa59cbca239 => local://dockerfile => => transferring dockerfile: 995B => local://context => => transferring context: 34B => [internal] load metadata for docker-registry.wikimedia.org/bookworm:20250720 => CACHED [internal] helper image for file operations => [internal] load build context => => transferring context: 1.55kB => [production 1/6] FROM docker-registry.wikimedia.org/bookworm:20250720@sha256:2e8d99bc7a9be89c2aa3e711004730202eef793f3a912e73c99dc743b17ef3e6 => CACHED [build 2/8] RUN apt-get update && apt-get install -y "python3-pip" "python3-dev" "build-essential" "git" "wget" && rm -rf /var/lib/apt/lists/* => ERROR [build 3/8] RUN python3 "-m" "pip" "install" "-U" "setuptools!=60.9.0" && python3 "-m" "pip" "install" "-U" "wheel" "tox" "pip" => CACHED [production 2/6] RUN apt-get update && apt-get install -y "python3" "python3-distutils" "build-essential" "wmf-certificates" && rm -rf /var/lib/apt/lists/* => CACHED [production 3/6] RUN (getent group "65533" || groupadd -o -g "65533" -r "somebody") && (getent passwd "65533" || useradd -l -o -m -d "/home/somebody" -r -g "65533" -u "65533" "somebody") && mkdir -p "/srv/app => CACHED [production 4/6] RUN (getent group "900" || groupadd -o -g "900" -r "runuser") && (getent passwd "900" || useradd -l -o -m -d "/home/runuser" -r -g "900" -u "900" "runuser") => CACHED [production 5/6] COPY --chown=65533:65533 [ores-legacy/, .] ------ > [build 3/8] RUN python3 "-m" "pip" "install" "-U" "setuptools!=60.9.0" && python3 "-m" "pip" "install" "-U" "wheel" "tox" "pip": 0.980 error: externally-managed-environment 0.980 × This environment is externally managed 0.980 ╰─> To install Python packages system-wide, try apt install 0.980 python3-xyz, where xyz is the package you are trying to 0.980 install. 0.980 0.980 If you wish to install a non-Debian-packaged Python package, 0.980 create a virtual environment using python3 -m venv path/to/venv. 0.980 Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make 0.980 sure you have python3-full installed. 0.980 0.980 If you wish to install a non-Debian packaged Python application, 0.980 it may be easiest to use pipx install xyz, which will manage a 0.980 virtual environment for you. Make sure you have pipx installed. 0.980 0.980 See /usr/share/doc/python3.11/README.venv for more information. 0.980 0.980 note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. 0.980 hint: See PEP 668 for the detailed specification. ------ ERROR: failed to solve: process "/bin/sh -c python3 \"-m\" \"pip\" \"install\" \"-U\" \"setuptools!=60.9.0\" && python3 \"-m\" \"pip\" \"install\" \"-U\" \"wheel\" \"tox\" \"pip\"" did not complete successfully: exit code: 1
Try with buildkit: v0.21.0 and bookworm:20250720:
[+] Building 173.9s (15/22) docker:desktop-linux => [internal] load build definition from blubber.yaml => => transferring dockerfile: 999B => resolve image config for docker-image://docker-registry.wikimedia.org/repos/releng/blubber/buildkit:v0.21.0 => CACHED docker-image://docker-registry.wikimedia.org/repos/releng/blubber/buildkit:v0.21.0@sha256:3e11f28d81506d2dc4d3ec5b95e1efe06e13d2adfdb1b9bc0f1679fba9f9342d => => resolve docker-registry.wikimedia.org/repos/releng/blubber/buildkit:v0.21.0@sha256:3e11f28d81506d2dc4d3ec5b95e1efe06e13d2adfdb1b9bc0f1679fba9f9342d => local://dockerfile => => transferring dockerfile: 999B => local://context => => transferring context: 34B => [internal] load metadata for docker-registry.wikimedia.org/bookworm:20250720 => [internal] load build context => => transferring context: 1.94kB => CACHED [build 1/9] FROM docker-registry.wikimedia.org/bookworm:20250720@sha256:2e8d99bc7a9be89c2aa3e711004730202eef793f3a912e73c99dc743b17ef3e6 => => resolve docker-registry.wikimedia.org/bookworm:20250720@sha256:2e8d99bc7a9be89c2aa3e711004730202eef793f3a912e73c99dc743b17ef3e6 => [build 2/9] RUN apt-get update && apt-get install -y "python3-pip" "python3-dev" "build-essential" "git" "wget" && rm -rf /var/lib/apt/lists/* => CACHED [production 2/7] RUN apt-get update && apt-get install -y "python3" "python3-distutils" "build-essential" "wmf-certificates" && rm -rf /var/lib/apt/lists/* => CACHED [production 3/7] RUN (getent group "65533" || groupadd -o -g "65533" -r "somebody") && (getent passwd "65533" || useradd -l -o -m -d "/home/somebody" -r -g "65533" -u "65533" "somebody") && mkdir -p "/srv/app" && chown "65533" 0.0s => CACHED [production 4/7] RUN (getent group "900" || groupadd -o -g "900" -r "runuser") && (getent passwd "900" || useradd -l -o -m -d "/home/runuser" -r -g "900" -u "900" "runuser") => CACHED [production 5/7] WORKDIR /srv/app => [production 6/7] COPY --chown=65533:65533 [ores-legacy/, .] => ERROR [build 3/9] RUN python3.9 "-m" "pip" "install" "-U" "setuptools!=60.9.0" && python3.9 "-m" "pip" "install" "-U" "wheel" "tox" "pip" ------ > [build 3/9] RUN python3.9 "-m" "pip" "install" "-U" "setuptools!=60.9.0" && python3.9 "-m" "pip" "install" "-U" "wheel" "tox" "pip": 0.126 /bin/sh: 1: python3.9: not found ------ ERROR: failed to solve: process "/bin/sh -c python3.9 \"-m\" \"pip\" \"install\" \"-U\" \"setuptools!=60.9.0\" && python3.9 \"-m\" \"pip\" \"install\" \"-U\" \"wheel\" \"tox\" \"pip\"" did not complete successfully: exit code: 127
The final combination which worked is the one in the submitted patch with the following changes:
- Buildkit: v0.21.0
- Base image: bookworm:20250720
- Build variant apt packages: python3-setuptools, python3-venv
- python version: python3 instead of python3.9
Tested locally and on ml-testing.
Change #1172612 merged by jenkins-bot:
[machinelearning/liftwing/inference-services@main] ores-legacy-model: Update base image from bullseye to the latest bookworm image.
Change #1174404 had a related patch set uploaded (by Gkyziridis; author: Gkyziridis):
[operations/deployment-charts@master] ml-services: Deploy ores-legacy-model to the latest published image.
Change #1174404 merged by jenkins-bot:
[operations/deployment-charts@master] ml-services: Deploy ores-legacy-model to the latest published image.