11# syntax=docker/dockerfile:1.5.0-labs
2- # ubuntu:24.04
3- FROM ubuntu@sha256:0d39fcc8335d6d74d5502f6df2d30119ff4790ebbb60b364818d5112d9e3e932 AS builder
2+ # ubuntu:24.10 (Oracular) — provides systemd 256 EFI stub with TDX RTMR support
3+ FROM ubuntu@sha256:cdf755952ed117f6126ff4e65810bf93767d4c38f5c7185b50ec1f1078b464cc AS builder
44
55ARG MKOSI_VERSION="v22"
66ARG PROFILE="debug"
77ARG IMAGE_VERSION="0.0.0"
88
99ARG DEBIAN_FRONTEND=noninteractive
1010
11+ # 24.10 is EOL; redirect apt to old-releases mirror
12+ RUN sed -i 's|archive.ubuntu.com|old-releases.ubuntu.com|g; s|security.ubuntu.com|old-releases.ubuntu.com|g' \
13+ /etc/apt/sources.list.d/ubuntu.sources
14+
1115RUN apt-get update && \
1216 apt-get install -y \
1317 bubblewrap \
18+ curl \
1419 git \
20+ gnupg \
1521 cpio \
1622 systemd-repart \
1723 kmod \
@@ -37,10 +43,39 @@ COPY mkosi.presets /image/mkosi.presets
3743COPY mkosi.profiles /image/mkosi.profiles
3844COPY mkosi.skeleton /image/mkosi.skeleton
3945COPY mkosi.skeleton-debug /image/mkosi.skeleton-debug
46+ COPY mkosi.skeleton-debug-ubuntu /image/mkosi.skeleton-debug-ubuntu
4047COPY mkosi.skeleton-sftp /image/mkosi.skeleton-sftp
4148COPY mkosi.workspace /image/mkosi.workspace
4249COPY resources /image/resources
4350COPY mkosi.conf.ubuntu /image/mkosi.conf
51+
52+ # Add NVIDIA APT repos to mkosi.skeleton/ so they are present in the image tree
53+ # *before* package installation. mkosi applies SkeletonTrees before apt-get runs.
54+ RUN mkdir -p /image/mkosi.skeleton/etc/apt/sources.list.d \
55+ /image/mkosi.skeleton/etc/apt/preferences.d \
56+ /image/mkosi.skeleton/usr/share/keyrings \
57+ && curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-archive-keyring.gpg \
58+ -o /image/mkosi.skeleton/usr/share/keyrings/cuda-archive-keyring.gpg \
59+ && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \
60+ | gpg --dearmor -o /image/mkosi.skeleton/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
61+ && echo 'deb [signed-by=/usr/share/keyrings/cuda-archive-keyring.gpg] https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/ /' \
62+ > /image/mkosi.skeleton/etc/apt/sources.list.d/cuda-ubuntu2404-x86_64.list \
63+ && echo 'deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://nvidia.github.io/libnvidia-container/stable/deb/amd64 /' \
64+ > /image/mkosi.skeleton/etc/apt/sources.list.d/nvidia-container-toolkit.list \
65+ && printf '%s\n' \
66+ 'Package: nvidia-*' \
67+ 'Pin: origin developer.download.nvidia.com' \
68+ 'Pin-Priority: 1001' \
69+ '' \
70+ 'Package: libnvidia-*' \
71+ 'Pin: origin developer.download.nvidia.com' \
72+ 'Pin-Priority: 1001' \
73+ '' \
74+ 'Package: cuda-*' \
75+ 'Pin: origin developer.download.nvidia.com' \
76+ 'Pin-Priority: 1001' \
77+ > /image/mkosi.skeleton/etc/apt/preferences.d/nvidia-cuda-repo
78+
4479RUN --security=insecure mkosi --profile=$PROFILE --image-version=$IMAGE_VERSION
4580
4681FROM scratch
0 commit comments