fix: use Ubuntu 24.04 for arm64 base to avoid deadsnakes PPA under QEMU

add-apt-repository ppa:deadsnakes/ppa fails on arm64 in GitHub Actions
because QEMU emulation doesn't support the GPG agent. Ubuntu 24.04 ships
Python 3.12 natively so the PPA is not needed. amd64 (CUDA/Ubuntu 22.04
base) still uses the PPA. PPA install is now gated on TARGETARCH=amd64.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-12 04:02:49 +00:00
co-authored by Claude Sonnet 4.6
parent c8fbbc0431
commit c59acb5e31
+16 -9
View File
@@ -1,9 +1,9 @@
# ── Platform-conditional base ───────────────────────────────────────────── # ── Platform-conditional base ─────────────────────────────────────────────
# amd64: NVIDIA CUDA 12.6 (GPU acceleration when available, CPU fallback) # amd64: NVIDIA CUDA 12.6 (GPU acceleration when available, CPU fallback)
# arm64: Plain Ubuntu (CPU-only, no CUDA on ARM) # arm64: Ubuntu 24.04 (CPU-only; Python 3.12 native — no PPA needed)
FROM --platform=$BUILDPLATFORM nvidia/cuda:12.9.2-cudnn-runtime-ubuntu22.04 AS base-amd64 FROM --platform=$BUILDPLATFORM nvidia/cuda:12.9.2-cudnn-runtime-ubuntu22.04 AS base-amd64
FROM --platform=$BUILDPLATFORM ubuntu:22.04 AS base-arm64 FROM --platform=$BUILDPLATFORM ubuntu:24.04 AS base-arm64
# ── Build stage ─────────────────────────────────────────────────────────── # ── Build stage ───────────────────────────────────────────────────────────
ARG TARGETARCH ARG TARGETARCH
@@ -12,13 +12,17 @@ FROM base-${TARGETARCH} AS build
ENV DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND=noninteractive
# amd64 (Ubuntu 22.04 CUDA base): Python 3.12 via deadsnakes PPA
# arm64 (Ubuntu 24.04): Python 3.12 is native — skip PPA entirely
RUN apt-get update && apt-get install -y --no-install-recommends \ RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \ ca-certificates \
curl \ curl \
gnupg \ && if [ "$TARGETARCH" = "amd64" ]; then \
software-properties-common \ apt-get install -y --no-install-recommends gnupg software-properties-common \
&& add-apt-repository ppa:deadsnakes/ppa -y \ && add-apt-repository ppa:deadsnakes/ppa -y \
&& apt-get update && apt-get install -y --no-install-recommends \ && apt-get update; \
fi \
&& apt-get install -y --no-install-recommends \
python3.12 python3.12-venv python3.12-dev \ python3.12 python3.12-venv python3.12-dev \
libgl1 libglib2.0-0 libxext6 g++ \ libgl1 libglib2.0-0 libxext6 g++ \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
@@ -47,10 +51,13 @@ ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends \ RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \ ca-certificates \
software-properties-common \
tini \ tini \
&& add-apt-repository ppa:deadsnakes/ppa -y \ && if [ "$TARGETARCH" = "amd64" ]; then \
&& apt-get update && apt-get install -y --no-install-recommends \ apt-get install -y --no-install-recommends gnupg software-properties-common \
&& add-apt-repository ppa:deadsnakes/ppa -y \
&& apt-get update; \
fi \
&& apt-get install -y --no-install-recommends \
python3.12 python3.12-venv \ python3.12 python3.12-venv \
libgl1 libglib2.0-0 libxext6 \ libgl1 libglib2.0-0 libxext6 \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \