-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathContainerfile.nvidia
47 lines (45 loc) · 2.08 KB
/
Containerfile.nvidia
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
ARG release=38
ARG tag=$release-main
ARG variant=silverblue
FROM ghcr.io/jmpolom/fedora-$variant-ws:$tag as kmod-build
ARG release
RUN rpm -q kernel --queryformat '%{VERSION}-%{RELEASE}.%{ARCH}' > /kernel-version.txt && \
rpm-ostree install -y \
https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$release.noarch.rpm \
https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$release.noarch.rpm && \
rpm-ostree install -y \
kernel-modules-"$(cat /kernel-version.txt)" \
kernel-devel-"$(cat /kernel-version.txt)" \
akmod-nvidia && \
if [ ! -e "/usr/bin/ld" ]; then ln -s /usr/bin/ld.bfd /usr/bin/ld; fi && \
ls -alh /usr/bin/ld && \
mkdir -p "/nvidia-kmod/{BUILD,SPECS,SOURCES,SRPMS,RPMS}/$(uname -m)"
WORKDIR /usr/src/akmods
RUN rpmbuild \
--define "_topdir /nvidia-kmod/" \
--define "_buildtree /nvidia-kmod/BUILD" \
--define "_specdir /nvidia-kmod/SPECS" \
--define "_sourcedir /nvidia-kmod/SOURCES" \
--define "_srcrpmdir /nvidia-kmod/SRPMS" \
--define "_rpmdir /nvidia-kmod/RPMS" \
--define "kernels $(cat /kernel-version.txt)" \
--rebuild nvidia-kmod.latest
FROM ghcr.io/jmpolom/fedora-$variant-ws:$tag
ARG release
COPY --from=kmod-build /nvidia-kmod/RPMS /nvidia-kmod
RUN set -x && \
ls -alh /nvidia-kmod && \
ls -alh /nvidia-kmod/"$(uname -m)"
RUN curl -s -L https://nvidia.github.io/libnvidia-container/centos8/libnvidia-container.repo > /etc/yum.repos.d/libnvidia-container.repo && \
rpm-ostree install -y \
https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$release.noarch.rpm \
https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$release.noarch.rpm && \
rpm-ostree install -y \
/nvidia-kmod/"$(uname -m)"/*.rpm \
moby-engine \
nvidia-container-toolkit \
xorg-x11-drv-nvidia-cuda && \
sed -i 's/^#no-cgroups = false/no-cgroups = true/;' /etc/nvidia-container-runtime/config.toml && \
echo 'blacklist nouveau' > /etc/modprobe.d/nouveau-blacklist.conf && \
rm -rf /nvidia-kmod && \
ostree container commit