Commit 06fc3e5
fix(agent-image): ship the uv binary in the runtime stage
Second half of the #68 init-uv contract fix. #85 added the lockfiles at
/opt/venv-template/, which let `init-uv` get past its `cp` step and reach
`uv sync --frozen` — which then failed with exit 127 ("uv: not found"),
because the runtime stage copies the resolved venv (/opt/venv) but never the
uv binary. (Before #85, init-uv died at the earlier `cp`, masking this.)
Copy uv/uvx into the runtime image (mirroring the builder stage) and set
deterministic UV_* defaults so the pod-start `uv sync` never tries to download
a Python or hardlink across the image-layer -> PVC boundary:
- UV_PYTHON_DOWNLOADS=never
- UV_PYTHON=/usr/local/bin/python
- UV_LINK_MODE=copy
Verified locally: building the image and running the exact init-uv command
(cp + uv sync --frozen) now completes and populates the per-instance .venv.
Refs #68
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>1 parent 39ef52c commit 06fc3e5
1 file changed
Lines changed: 13 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
96 | 96 | | |
97 | 97 | | |
98 | 98 | | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
99 | 109 | | |
100 | 110 | | |
101 | 111 | | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
102 | 115 | | |
103 | 116 | | |
104 | 117 | | |
| |||
0 commit comments