Add documentation for intermediate Docker layers in a workspace#16787
Add documentation for intermediate Docker layers in a workspace#16787
Conversation
| ADD . /app | ||
|
|
||
| RUN --mount=type=cache,target=/root/.cache/uv \ | ||
| uv sync --locked |
There was a problem hiding this comment.
I think I would recommend --frozen here, isn't it much simpler? That's what we tend to do in our own Dockerfiles.
There was a problem hiding this comment.
In what sense? --frozen here doesn't change anything because the whole workspace has been added already, it'd be up above where using --frozen instead of --locked makes things simpler.
I don't think we should recommend --frozen in general though, because I think --locked asserting that your uv.lock is not stale is meaningful and helpful.
I think it's fine to recommend --frozen above and rely on this subsequent --locked to catch a stale lock, but I worry that will also be confusing to people (i.e., I recommended exactly this in the issue and the user opted to do the additional mounts instead)
There was a problem hiding this comment.
Sorry, I meant to comment on the line above. I personally find it unnecessary to enumerate all of the pyproject.toml files in the uv sync --no-install-workspace when you're doing a locked install here anyway? (But -- again personally -- I wouldn't use --locked in a Dockerfile, I think that validation should be done in CI.)
In pyx at least, we instead use --frozen for this install phase, but enumerate all the workspace members when we do the ADD (to minimize invalidation).
|
If I need to install all the packages for a specific workspace, how should I handle it? If I directly use uv sync --package, will the packages in the project root directory be ignored |
|
Yeah, use |
CodSpeed Performance ReportMerging #16787 will degrade performances by 19.45%Comparing Summary
Benchmarks breakdown
|
This MR contains the following updates: | Package | Update | Change | |---|---|---| | [astral-sh/uv](https://github.com/astral-sh/uv) | patch | `0.9.11` -> `0.9.13` | MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot). **Proposed changes to behavior should be submitted there as MRs.** --- ### Release Notes <details> <summary>astral-sh/uv (astral-sh/uv)</summary> ### [`v0.9.13`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0913) [Compare Source](astral-sh/uv@0.9.12...0.9.13) Released on 2025-11-26. ##### Bug fixes - Revert "Allow `--with-requirements` to load extensionless inline-metadata scripts" to fix reading of requirements files from streams ([#​16861](astral-sh/uv#16861)) - Validate URL wheel tags against `Requires-Python` and required environments ([#​16824](astral-sh/uv#16824)) ##### Documentation - Drop unpublished crates from the uv crates.io README ([#​16847](astral-sh/uv#16847)) - Fix the links to uv in crates.io member READMEs ([#​16848](astral-sh/uv#16848)) ### [`v0.9.12`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0912) [Compare Source](astral-sh/uv@0.9.11...0.9.12) Released on 2025-11-24. ##### Enhancements - Allow `--with-requirements` to load extensionless inline-metadata scripts ([#​16744](astral-sh/uv#16744)) - Collect and upload PEP 740 attestations during `uv publish` ([#​16731](astral-sh/uv#16731)) - Prevent `uv export` from overwriting `pyproject.toml` ([#​16745](astral-sh/uv#16745)) ##### Documentation - Add a crates.io README for uv ([#​16809](astral-sh/uv#16809)) - Add documentation for intermediate Docker layers in a workspace ([#​16787](astral-sh/uv#16787)) - Enumerate workspace members in the uv crate README ([#​16811](astral-sh/uv#16811)) - Fix documentation links for crates ([#​16801](astral-sh/uv#16801)) - Generate a crates.io README for uv workspace members ([#​16812](astral-sh/uv#16812)) - Move the "Export" guide to the projects concept section ([#​16835](astral-sh/uv#16835)) - Update the cargo install recommendation to use crates ([#​16800](astral-sh/uv#16800)) - Use the word "internal" in crate descriptions ([#​16810](astral-sh/uv#16810)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this MR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box --- This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xOS43IiwidXBkYXRlZEluVmVyIjoiNDIuMjEuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90Il19-->
No description provided.