From f54f0d317ded10c9c809e026f3b795251cd225dc Mon Sep 17 00:00:00 2001 From: Dirk Riemann Date: Sat, 18 Apr 2026 12:42:29 +0200 Subject: [PATCH] fix(docker): include README.md in the uv sync COPY so hatchling finds it pyproject.toml names README.md as the readme; hatchling validates that file exists when uv sync resolves the editable install of the project itself. Caught on second deploy build. Co-Authored-By: Claude Opus 4.7 (1M context) --- Dockerfile | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2642281..99d64c0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -46,9 +46,11 @@ RUN curl -LsSf https://astral.sh/uv/install.sh | sh \ WORKDIR /app -# Copy just the dependency manifests first so the heavy `uv sync` layer -# caches whenever only application code changes. -COPY pyproject.toml uv.lock .python-version ./ +# Copy dependency manifests + README early so the heavy `uv sync` layer +# caches whenever only application code changes. README.md is required +# because pyproject.toml names it as the package's readme — hatchling +# validates it exists when resolving the editable install. +COPY pyproject.toml uv.lock .python-version README.md ./ # Prod + OCR extras, no dev tooling. --frozen means "must match uv.lock"; # CI catches drift before it reaches the image.