Page MenuHomePhabricator

Upgrade ores-legacy from debian bullseye to bookworm
Closed, ResolvedPublic

Description

Use the latest bookworm image and update ores-legacy.

Operating_system_upgrade_policy

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.

https://gerrit.wikimedia.org/r/1172612

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.

https://gerrit.wikimedia.org/r/1172612

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.

https://gerrit.wikimedia.org/r/1174404

Change #1174404 merged by jenkins-bot:

[operations/deployment-charts@master] ml-services: Deploy ores-legacy-model to the latest published image.

https://gerrit.wikimedia.org/r/1174404