Skip to content

Cannot pip install and build lru-dict on 3.13.2-slim-bookworm #1008

@remyroy

Description

@remyroy

We just upgraded from python:3.12.7-slim-bookworm to python:3.13.2-slim-bookworm for our Docker image. We used to be able to build everything but now it seems like gcc is not included in python:3.13.2-slim-bookworm which cause our pip install and build of the lru-dict package to fail.

To reproduce create this Dockerfile:

FROM python@sha256:f3614d98f38b0525d670f287b0474385952e28eb43016655dd003d0e28cf8652

RUN pip3 install --upgrade pip
RUN pip3 install lru-dict

Run docker build .

Notice the output:

[+] Building 8.8s (6/6) FINISHED                                                         docker:default
 => [internal] load build definition from Dockerfile                                               0.0s
 => => transferring dockerfile: 180B                                                               0.0s
 => [internal] load metadata for docker.io/library/python@sha256:f3614d98f38b0525d670f287b0474385  0.0s
 => [internal] load .dockerignore                                                                  0.0s
 => => transferring context: 2B                                                                    0.0s
 => CACHED [1/3] FROM docker.io/library/python@sha256:f3614d98f38b0525d670f287b0474385952e28eb430  0.0s
 => [2/3] RUN pip3 install --upgrade pip                                                           4.4s
 => ERROR [3/3] RUN pip3 install lru-dict                                                          4.4s
------
 > [3/3] RUN pip3 install lru-dict:
0.939 Collecting lru-dict
1.001   Downloading lru-dict-1.3.0.tar.gz (13 kB)
1.017   Installing build dependencies: started
3.189   Installing build dependencies: finished with status 'done'
3.191   Getting requirements to build wheel: started
3.528   Getting requirements to build wheel: finished with status 'done'
3.530   Preparing metadata (pyproject.toml): started
3.827   Preparing metadata (pyproject.toml): finished with status 'done'
3.833 Building wheels for collected packages: lru-dict
3.835   Building wheel for lru-dict (pyproject.toml): started
4.130   Building wheel for lru-dict (pyproject.toml): finished with status 'error'
4.142   error: subprocess-exited-with-error
4.142
4.142   × Building wheel for lru-dict (pyproject.toml) did not run successfully.
4.142   │ exit code: 1
4.142   ╰─> [24 lines of output]
4.142       running bdist_wheel
4.142       running build
4.142       running build_py
4.142       creating build/lib.linux-x86_64-cpython-313/lru
4.142       copying src/lru/__init__.py -> build/lib.linux-x86_64-cpython-313/lru
4.142       running egg_info
4.142       writing src/lru_dict.egg-info/PKG-INFO
4.142       writing dependency_links to src/lru_dict.egg-info/dependency_links.txt
4.142       writing requirements to src/lru_dict.egg-info/requires.txt
4.142       writing top-level names to src/lru_dict.egg-info/top_level.txt
4.142       reading manifest file 'src/lru_dict.egg-info/SOURCES.txt'
4.142       reading manifest template 'MANIFEST.in'
4.142       warning: no files found matching 'MANIFEST'
4.142       warning: no previously-included files matching '*.pyc' found anywhere in distribution
4.142       warning: no previously-included files matching '*.cache' found anywhere in distribution
4.142       adding license file 'LICENSE'
4.142       writing manifest file 'src/lru_dict.egg-info/SOURCES.txt'
4.142       copying src/lru/__init__.pyi -> build/lib.linux-x86_64-cpython-313/lru
4.142       copying src/lru/py.typed -> build/lib.linux-x86_64-cpython-313/lru
4.142       running build_ext
4.142       building 'lru._lru' extension
4.142       creating build/temp.linux-x86_64-cpython-313/src/lru
4.142       gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/usr/local/include/python3.13 -c src/lru/_lru.c -o build/temp.linux-x86_64-cpython-313/src/lru/_lru.o
4.142       error: command 'gcc' failed: No such file or directory
4.142       [end of output]
4.142
4.142   note: This error originates from a subprocess, and is likely not a problem with pip.
4.143   ERROR: Failed building wheel for lru-dict
4.143 Failed to build lru-dict
4.190 ERROR: Failed to build installable wheels for some pyproject.toml based projects (lru-dict)
------
Dockerfile:4
--------------------
   2 |
   3 |     RUN pip3 install --upgrade pip
   4 | >>> RUN pip3 install lru-dict
--------------------
ERROR: failed to solve: process "/bin/sh -c pip3 install lru-dict" did not complete successfully: exit code: 1

Related to ethstaker/ethstaker-deposit-cli#281

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions