Skip to content

Commit dbba743

Browse files
fix(docker): pin api image to uv.lock to escape greenlet 3.5.0
Cloud Build trigger 1e9fc847 (build a12d85eb) failed with: hint: You're on Linux (manylinux_2_41_x86_64), but greenlet (v3.5.0) only has wheels for the following platforms: macosx_11_0_universal2, win_arm64 error: Distribution greenlet==3.5.0 ... can't be installed because it doesn't have a source distribution or wheel for the current platform The Dockerfile copied `pyproject.toml` but not `uv.lock`, and ran `uv sync` (re-resolves from pyproject) instead of `uv sync --frozen` (honors uv.lock). uv.lock pins greenlet 3.2.4 which has full linux/x86_64 wheel coverage; the 3.5.0 release only shipped macOS + win_arm64 wheels and broke any image built without the lock. Adds `COPY uv.lock .` and switches `uv sync` → `uv sync --frozen`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent b2ab800 commit dbba743

1 file changed

Lines changed: 5 additions & 2 deletions

File tree

api/Dockerfile

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,15 @@ RUN apt-get update && apt-get install -y \
1212

1313
# Copy requirements first for better caching
1414
COPY pyproject.toml .
15+
COPY uv.lock .
1516
COPY README.md .
1617

17-
# Install uv and create venv
18+
# Install uv and create venv. `--frozen` honors uv.lock instead of re-resolving
19+
# from pyproject.toml — without it, uv picked up greenlet 3.5.0, which only
20+
# ships macOS/Windows wheels and breaks the linux/amd64 Cloud Build image.
1821
RUN pip install --no-cache-dir uv && \
1922
uv venv && \
20-
uv sync
23+
uv sync --frozen
2124

2225
# Copy application code
2326
COPY api/ ./api/

0 commit comments

Comments
 (0)