Hello here,

Together with Aritra we are looking into adding a few more things to our
images (golang tool chain for CI image), also Shahar is experimenting with
Rust tool chain and I also recently realized (by some of the issues we had)
that 'Docker Official Python Image' that is part of 'Official Program' [1]
is not as 'Official' as I thought so we discuss about changing the base of
our images (first CI and then when we see it works fine - PROD)

Currently we are using the 'Official' image - but after some issues and
discussions with people at PyCon and FOSS Backstage (I had a chance to talk
to Python maintainers and even had a few beers with them) - it turned out
that the official Python Image' is maintained by 'a community's which
really is a few pretty random people - and that explains for example why we
have sometimes unpacked security vulnerabilities in setuptools etc. -
because they made some compatibility choices and decisions that do not
allow them to upgrade easily, also they had some delays in releasing
updated Python versions. And Docker does not **really** do much vetting
there.

So I think it would be good to switch how we build the base for our images.
And following the experience of `uv python` [2] - it seems that maybe using
"python-standalone" [3] project is a good alternative. It's managed by
Astral now (so yes - another dependency on them), but what you have with it
you have practically 100% complete Python interpreter installed in seconds.
We could continue using debian-slim as a "base, base image" - and install
python using "python-standalone". There are a few incompatibilities [4] of
the distributions of Python, but there are very few and mostly related to
some obscure systems (compatibilities with terminal in REPL, and gtk / UI
integration that is anyhow not really working in "standard" Python
distributions).

I would love to hear what you think - happy to get any feedback/ insights,
suggestions and answer additional questions, provide some links to past
"troubles" we had with Python "Official" images etc.

J.


[1] Official Python Images - https://hub.docker.com/_/python
[2] UV Python installation -
https://docs.astral.sh/uv/guides/install-python/
[3] Python Standalone project -
https://github.com/astral-sh/python-build-standalone
[4] Python Standalone incompatibilities -
https://gregoryszorc.com/docs/python-build-standalone/main/quirks.html

Reply via email to