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
19 lines
805 B
Docker
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
|