Improve docker python management #949
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
The existing Dockerfiles were hardcoded to use the minimum supported Python version (3.10), preventing users from easily running CORE with newer Python versions. This PR keeps the minimum supported Python version (3.10) for building CORE packages while providing the newest supported Python Version (3.12) for the Rocky Linux and Ubuntu runtime images.
Changes
Python Version Management
uvwas already used inDockerfile.build. Since it provides great Python version management independent of system packages, I extended its use to all Dockerfiles.PYTHON_VERSIONARG: All Dockerfiles now accept a Python version argument (defaults: 3.10 for build, 3.12 for runtime).pyproj3.6.1 dependency.Base Image Updates
EMANE Updates
protoc3.19.6 -> 28.3: Newer protoc versions generate code incompatible withprotobuf5.29.3.setuptools<81:pkg_resourceshas been marked as deprecated, but is still in use by EMANE.Other Changes
curl(uv now copied from official image).README.mdandinstall.mdPython requirement to reflect actual compatibility.