Merge pull request 'Modernise agent base → Ubuntu 24.04 / Python 3.12 / CUDA 12.9' (#170) from dev into main
Build images / build-ml (push) Failing after 3s
Build images / sign-extension (push) Successful in 3s
CI / lint (push) Successful in 4s
Build images / build-web (push) Successful in 7s
CI / frontend-build (push) Successful in 21s
CI / backend-lint-and-test (push) Successful in 41s
CI / integration (push) Successful in 3m22s
Build images / build-agent (push) Successful in 8m44s
Build images / build-ml (push) Failing after 3s
Build images / sign-extension (push) Successful in 3s
CI / lint (push) Successful in 4s
Build images / build-web (push) Successful in 7s
CI / frontend-build (push) Successful in 21s
CI / backend-lint-and-test (push) Successful in 41s
CI / integration (push) Successful in 3m22s
Build images / build-agent (push) Successful in 8m44s
This commit was merged in pull request #170.
This commit is contained in:
+14
-8
@@ -1,18 +1,24 @@
|
|||||||
# FabledCurator GPU agent — runs on the desktop with the GPU.
|
# FabledCurator GPU agent — runs on the desktop with the GPU.
|
||||||
# CUDA + cuDNN runtime so onnxruntime-gpu can use the card (it needs cuDNN 9 —
|
# CUDA 12.9 + cuDNN 9 runtime so onnxruntime-gpu can use the card (it needs
|
||||||
# the plain -runtime image lacks it: "libcudnn.so.9: cannot open shared object
|
# cuDNN 9 — the plain -runtime image lacks it: "libcudnn.so.9: cannot open
|
||||||
# file"); ffmpeg for video frames.
|
# shared object file"); ffmpeg for video frames. Ubuntu 24.04 → Python 3.12.
|
||||||
FROM nvidia/cuda:12.4.1-cudnn-runtime-ubuntu22.04
|
# Stays on the CUDA-12 / cuDNN-9 line the default onnxruntime-gpu + torch are
|
||||||
|
# built against (CUDA 13 has only nascent ONNX Runtime support).
|
||||||
|
FROM nvidia/cuda:12.9.2-cudnn-runtime-ubuntu24.04
|
||||||
|
|
||||||
ENV DEBIAN_FRONTEND=noninteractive PYTHONUNBUFFERED=1
|
# PIP_BREAK_SYSTEM_PACKAGES: Ubuntu 24.04 marks its system Python as externally
|
||||||
|
# managed (PEP 668), so a global `pip install` errors without this. It's a
|
||||||
|
# single-purpose container — we own the whole environment, so installing into
|
||||||
|
# the system site-packages is fine (and simplest — no venv on PATH to manage).
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive PYTHONUNBUFFERED=1 PIP_BREAK_SYSTEM_PACKAGES=1
|
||||||
RUN apt-get update \
|
RUN apt-get update \
|
||||||
&& apt-get install -y --no-install-recommends python3 python3-pip ffmpeg \
|
&& apt-get install -y --no-install-recommends python3 python3-pip ffmpeg \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
# torch from the CUDA-12.4 wheel index (matches the base image); its wheels
|
# torch from the CUDA-12.4 wheel index; its wheels bundle their own CUDA + cuDNN
|
||||||
# bundle their own CUDA + cuDNN and coexist with onnxruntime-gpu. Installed
|
# so they run on the 12.9 base and coexist with onnxruntime-gpu. Installed first
|
||||||
# first + separately so the GPU build of torch is deterministic and layer-cached.
|
# + separately so the GPU build of torch is deterministic and layer-cached.
|
||||||
RUN pip3 install --no-cache-dir torch==2.6.0 --index-url https://download.pytorch.org/whl/cu124
|
RUN pip3 install --no-cache-dir torch==2.6.0 --index-url https://download.pytorch.org/whl/cu124
|
||||||
COPY requirements.txt .
|
COPY requirements.txt .
|
||||||
RUN pip3 install --no-cache-dir -r requirements.txt
|
RUN pip3 install --no-cache-dir -r requirements.txt
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ from .worker import Worker
|
|||||||
# Bump on every agent change. The page embeds this and /status reports it; the UI
|
# Bump on every agent change. The page embeds this and /status reports it; the UI
|
||||||
# warns to reload when they differ — so a stale browser-cached page can't be
|
# warns to reload when they differ — so a stale browser-cached page can't be
|
||||||
# mistaken for "the new image didn't deploy". (Belt-and-braces with no-store.)
|
# mistaken for "the new image didn't deploy". (Belt-and-braces with no-store.)
|
||||||
VERSION = "2026-06-30.6 · submit-retry+py310"
|
VERSION = "2026-06-30.7 · ubuntu24.04-py312-cuda12.9"
|
||||||
|
|
||||||
logbuf.install()
|
logbuf.install()
|
||||||
cfg = Config.from_env()
|
cfg = Config.from_env()
|
||||||
|
|||||||
+6
-6
@@ -1,7 +1,7 @@
|
|||||||
# The agent runs on the CUDA base image's Python 3.10 — NOT the 3.14 that CI's
|
# The agent runs on the CUDA base image's Python 3.12 (Ubuntu 24.04) — NOT the
|
||||||
# ci-python image and the repo-root ruff.toml target. Pin the agent to py310 so
|
# 3.14 that CI's ci-python image and the repo-root ruff.toml target. Pin the
|
||||||
# ruff enforces 3.10 compatibility and never auto-applies a 3.11+/3.14-only fix
|
# agent to py312 so ruff enforces 3.12 compatibility and never auto-applies a
|
||||||
# (e.g. unquoting a self-referential annotation, which PEP 649 makes safe on 3.14
|
# 3.14-only fix (e.g. unquoting a self-referential annotation, which PEP 649
|
||||||
# but NameErrors on 3.10). Inherit the root lint rules.
|
# makes safe on 3.14 but NameErrors on 3.12). Inherit the root lint rules.
|
||||||
extend = "../ruff.toml"
|
extend = "../ruff.toml"
|
||||||
target-version = "py310"
|
target-version = "py312"
|
||||||
|
|||||||
Reference in New Issue
Block a user