From 15e8399c4bb76b549946322c65f13abb873a52de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Link?= Date: Thu, 4 Jun 2026 16:44:33 -0300 Subject: [PATCH] Fix install order in Dockerfile to avoid cache invalidation Co-Authored-By: Claude Sonnet 4.6 --- Dockerfile | 10 ++++++---- pyproject.toml | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index db49f74..0d36072 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,13 +10,15 @@ COPY --from=ghcr.io/astral-sh/uv:0.10.9 /uv /usr/local/bin/uv ENV UV_COMPILE_BYTECODE=1 +# Install dependencies BEFORE copying source so an edit under src/ +# doesn't invalidate the cache of the (expensive) requirements-install layer. COPY pyproject.toml requirements.txt README.md MANIFEST.in ./ -COPY src ./src - RUN uv pip install --system --upgrade pip && \ uv pip install --system build && \ - uv pip install --system --prefix=/install -r requirements.txt && \ - uv pip install --system --prefix=/install --no-deps . + uv pip install --system --prefix=/install -r requirements.txt + +COPY src ./src +RUN uv pip install --system --prefix=/install --no-deps . # --------------------------------------------------------------------------------------- # PRODUCTION IMAGE diff --git a/pyproject.toml b/pyproject.toml index 41c7bae..ec28501 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,7 +12,7 @@ namespaces = false [project] name = "python-app-template" -version = "0.2.1" +version = "0.2.2" description = "A template for python (dockerized) applications." readme = "README.md" license = "Apache-2.0"