diff --git a/docker/Dockerfile b/docker/Dockerfile index 50c2f31e95..47ff491ea6 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,4 +1,4 @@ -ARG BASE_IMAGE=python:3.11-slim-bullseye +ARG BASE_IMAGE=python:3.12-slim-bullseye # hadolint ignore=DL3006 FROM ${BASE_IMAGE} as base @@ -6,7 +6,7 @@ FROM base as builder # Set PATH to pickup virtual environment by default ENV PATH=/usr/local/venv/bin:"${PATH}" COPY . /code -# hadolint ignore=DL3003,SC2102 +# hadolint ignore=DL3003,SC2102,SC1091 RUN apt-get -qq -y update && \ apt-get -qq -y install --no-install-recommends \ git && \ @@ -14,10 +14,12 @@ RUN apt-get -qq -y update && \ apt-get -y autoremove && \ rm -rf /var/lib/apt/lists/* && \ python -m venv /usr/local/venv && \ + . /usr/local/venv/bin/activate && \ cd /code && \ - python -m pip --no-cache-dir install --upgrade pip setuptools wheel && \ - python -m pip --no-cache-dir install '.[xmlio,contrib]' && \ - python -m pip list + python -m pip --no-cache-dir install --upgrade uv && \ + uv pip install --no-cache --upgrade pip setuptools wheel && \ + uv pip install --no-cache '.[xmlio,contrib]' && \ + uv pip list FROM base @@ -59,4 +61,8 @@ ENV LANG=C.UTF-8 ENV PATH=${HOME}/.local/bin:${PATH} +# The first ever run of the CLI API incurs some overhead so do that during the +# build instead of making the user wait +RUN pyhf --version + ENTRYPOINT ["/usr/local/venv/bin/pyhf"]