11ARG PLATFORM=linux/x86_64
2- ARG BASE_IMAGE=python:3.12.8 -slim
2+ ARG BASE_IMAGE=python:3.13.5 -slim
33
4- # This is the primary build target used for the production image
5- FROM --platform=$PLATFORM $BASE_IMAGE AS production
4+ FROM --platform=$PLATFORM $BASE_IMAGE AS uv-installed
65
76# Disable pip warnings https://stackoverflow.com/a/72551258
87ENV PIP_ROOT_USER_ACTION=ignore
@@ -32,26 +31,29 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get update -y --no-install-recommends &&
3231 apt-get clean -y && \
3332 rm -rf /var/lib/apt/lists/*
3433
35- COPY requirements-full.txt .
36-
37- RUN pip install --progress-bar off --no-cache-dir -r requirements-full.txt && \
38- rm requirements-full.txt
39-
4034# Install uv.
41- ADD https://astral.sh/uv/0.5.18 /install.sh /uv-installer.sh
35+ ADD https://astral.sh/uv/0.7.19 /install.sh /uv-installer.sh
4236RUN sh /uv-installer.sh && rm /uv-installer.sh
4337ENV PATH="/root/.local/bin/:$PATH" \
4438 UV_SYSTEM_PYTHON=1
4539
40+ # This is the primary build target used for the production image
41+ FROM --platform=$PLATFORM uv-installed AS production
42+
43+ COPY requirements-full.txt .
44+
45+ RUN uv pip install --no-progress --no-cache -r requirements-full.txt && \
46+ rm requirements-full.txt
47+
4648# Instruct joblib to use disk for temporary files. Joblib defaults to
4749# /shm when that directory is present. In the Docker container, /shm is
4850# present but defaults to 64 MB.
4951# https://github.com/joblib/joblib/blob/0.11/joblib/parallel.py#L328L342
5052ENV JOBLIB_TEMP_FOLDER=/tmp
5153
52- ENV VERSION=8.2 .0 \
54+ ENV VERSION=8.3 .0 \
5355 VERSION_MAJOR=8 \
54- VERSION_MINOR=2 \
56+ VERSION_MINOR=3 \
5557 VERSION_MICRO=0
5658
5759# This build target is for testing in CircleCI.
@@ -61,8 +63,7 @@ COPY CHANGELOG.md .
6163
6264# This build target is for updating dependencies.
6365# See generate-requirements.full.sh.
64- FROM --platform=$PLATFORM $BASE_IMAGE AS pip-tools
65- RUN pip install -U --no-cache-dir pip pip-tools --progress-bar off
66+ FROM --platform=$PLATFORM uv-installed AS update-deps
6667CMD ["/bin/bash" ]
6768
6869# Default to the production build target.
0 commit comments