fix(docker): copy uv build inputs for podman compatibility#878
fix(docker): copy uv build inputs for podman compatibility#878chris-cald wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
Pull request overview
This pull request updates the container build to improve Podman/macOS compatibility by removing BuildKit bind mounts for pyproject.toml and uv.lock during dependency installation and instead copying these files into the image layer before running uv sync. This keeps the dependency layer cache-friendly (changes to application source won’t invalidate it) while avoiding Podman bind-mount permission failures.
Changes:
- Copy
uv.lockandpyproject.tomlinto/app/prior to dependency installation. - Remove BuildKit
--mount=type=bindusage for those two files in the dependency install step.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
WalkthroughThe Dockerfile's dependency-install layer is reordered so that ChangesDockerfile dependency caching fix
Estimated code review effort: 1 (Trivial) | ~3 minutes Estimated code review effort: 1 (Trivial) | ~3 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This pull request fixes #877 issue
Description
This PR updates the Dockerfile dependency-install layer to copy
uv.lockandpyproject.tomlbefore runninguv sync, instead of reading them through BuildKit bind mounts.The previous bind-mount form can fail under Podman on macOS with:
pyproject.tomlanduv.lockare intrinsic build inputs for the Honcho image. Copying them into the dependency layer keeps dependency caching isolated from application source changes while avoiding Podman/macOS bind-mount permission issues.No new runtime dependencies are introduced.
Additional context
Validated locally with Podman 5.8.3 on macOS:
The API started successfully at
http://localhost:8000after this change.Changelog
Added
Changed
COPY uv.lock pyproject.toml /app/before the dependency install step instead of BuildKit bind mounts.Deprecated
Removed
uv.lockandpyproject.tomlfrom the dependency install step.Fixed
pyproject.tomlfrom a build-time bind mount.Security
Summary by CodeRabbit