The build died at `uv sync`: django-lucide is our fork, declared as a git source and pinned by the lock to a commit, so uv shells out to `git` to fetch it — and python:3.14-slim has no git. Installing git in the runtime image would have fixed it and left a build tool, plus its dependency tree, in production for the sake of one package that is already vendored into the venv by then. So the virtualenv is now built in a stage that has git, and the finished .venv is copied into a runtime stage that does not. Same base image, so the compiled wheels inside it stay ABI compatible. Also drops the second `uv sync`, which installed the project itself: there is no [build-system] and rosterchief is not a package — gunicorn imports it from the working directory, exactly as it does locally. Unverified end to end: still no container runtime on this machine. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3.2 KiB
3.2 KiB