non-windows Official Python docker images with the latest Poetry
Image tags are generated from the next template:
{poetry-version}-python-{official-python-image-tag}
,
where {poetry-version}
is a numeric version or latest
.
For example:
FROM weastur/poetry:1.5.1-python-3.11.4-bookworm
FROM weastur/poetry:1.5.1-python-3.11-alpine
FROM weastur/poetry:latest-python-3.11
There is one special tag - latest
- which is equivalent to
latest-python-latest
, so it's just the latest Poetry version
based on python:latest
image.
The image can be run with docker run
command. Notice that the COMMAND
inside
is still python3
, like in an Official Image.
The image itself is built on top of an Official Python Image, with the reference Poetry's installer, which means that there are no additional dependencies in the resulting image. For example:
➜ docker run -ti weastur/poetry bash
root@87ef07a9832a:/# pip list
Package Version
---------- -------
pip 22.0.4
setuptools 58.1.0
wheel 0.37.1
Also, pay attention that there are no additional settings of Poetry,
like poetry config virtualenvs.in-project true
Every single step of the build process runs with GitHub Actions.
This project builds images with the latest poetry for every latest
version of every supported python for every available architecture.
For example, it builds images for 3.12.3
python, but not
for 3.12.0
. Also, there are no builds for too old systems like Debian buster
or bullseye
or too old Alpine.
- There is no way to install the actual poetry version on an outdated python (like
3.5
, for example) - There is no way to install the actual poetry version on an outdated system (like Debian buster).
Poetry depends on
cryptography
which depends fromrust
. And there are some restrictions on the versions of toolchains suitable for building those deps. In other words, some systems have too old packages, so before installing poetry onbuster
, for example, we need to install the latest rust toolchain, which is overkill, I believe. - There is no power to re-build everything at least once a week. Github Actions runners are too slow
You need Docker installed.
You can start from .github/workflows/docker-build.yml
to inspect the build process.
The main files are Dockerfile
and update.py
.
Also, you can use pre-commit to run some checks locally before committing.
pre-commit install
MIT, see LICENSE.