conan-1.6-utilities/Containerfile
Ole-Morten Duesund 45d800bacd Make conandeps installable with uv
Add a hatchling build backend, a `conandeps` console script and a uv.lock
so `uv tool install .` (or from a git URL) yields a `conandeps` command in
an isolated venv. Add PEP 723 inline metadata to conandeps.py so the single
file also works standalone via `uv run conandeps.py`.

Pin requires-python to <3.12: Conan 1.x imports the removed `imp` module
(the Containerfile comment wrongly blamed distutils). Add uv to the dev
image so both install paths are verified inside the container.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EYNdaGDrpaqDyT8QtrTQbM
2026-08-25 14:51:38 +02:00

19 lines
805 B
Docker

# Development / runtime container for the conan utilities.
# Pinned to Conan 1.66 (the version we target) on Python 3.11 — Conan 1.x
# still imports the `imp` module, which was removed in Python 3.12.
FROM docker.io/library/python:3.11-slim-bookworm
ARG BUILD_DATE
ARG GIT_REVISION
LABEL org.opencontainers.image.created="${BUILD_DATE}" \
org.opencontainers.image.revision="${GIT_REVISION}"
RUN printf 'build_date=%s\ngit_revision=%s\n' "${BUILD_DATE}" "${GIT_REVISION}" > /etc/build-info
RUN pip install --no-cache-dir --root-user-action=ignore \
"conan==1.66.0" pytest ruff shellcheck-py uv
# Non-root user so files created in the mounted workdir are owned by the caller.
RUN useradd -m -u 1000 dev
USER dev
WORKDIR /work
ENV CONAN_USER_HOME=/home/dev PATH=/home/dev/.local/bin:$PATH