-
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathContainerfile.hwe
More file actions
97 lines (79 loc) · 2.96 KB
/
Containerfile.hwe
File metadata and controls
97 lines (79 loc) · 2.96 KB
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
ARG BASE_IMAGE
ARG IMAGE_NAME
ARG IMAGE_VENDOR
ARG SHA_HEAD_SHORT
ARG ENABLE_HWE="${ENABLE_HWE:-0}"
ARG ENABLE_GDX="${ENABLE_GDX:-0}"
ARG DESKTOP_FLAVOR="${DESKTOP_FLAVOR:-gnome}"
ARG AKMODS_VERSION="${AKMODS_VERSION:-centos-10}"
ARG COMMON_IMAGE_REF
ARG BREW_IMAGE_REF
ARG AKMODS_BASE="ghcr.io/ublue-os"
FROM ${AKMODS_BASE}/akmods-nvidia-open:${AKMODS_VERSION} AS akmods_nvidia_open
FROM ${COMMON_IMAGE_REF} AS common
FROM ${BREW_IMAGE_REF} AS brew
FROM scratch as context
COPY system_files /files
COPY --from=brew /system_files /files
COPY --from=common /system_files/shared /files
COPY system_files_overrides /overrides
COPY build_scripts /build_scripts
# ==============================================================================
# HWE Base stage - Adds HWE packages to the base image
# ==============================================================================
FROM ${BASE_IMAGE} AS base-hwe
ARG BASE_IMAGE
ARG IMAGE_NAME
ARG IMAGE_VENDOR
ARG SHA_HEAD_SHORT
ARG ENABLE_HWE
ARG ENABLE_GDX
ARG DESKTOP_FLAVOR
ENV BASE_IMAGE=${BASE_IMAGE}
ENV IMAGE_NAME=${IMAGE_NAME}
ENV IMAGE_VENDOR=${IMAGE_VENDOR}
ENV SHA_HEAD_SHORT=${SHA_HEAD_SHORT}
ENV ENABLE_HWE=${ENABLE_HWE}
ENV ENABLE_GDX=${ENABLE_GDX}
ENV DESKTOP_FLAVOR=${DESKTOP_FLAVOR}
RUN rm -rf /opt && mkdir /opt
RUN \
--mount=type=tmpfs,dst=/opt \
--mount=type=tmpfs,dst=/tmp \
--mount=type=tmpfs,dst=/boot \
--mount=type=bind,from=akmods_nvidia_open,src=/rpms,dst=/tmp/akmods-nvidia-open-rpms \
--mount=type=bind,from=context,source=/,target=/run/context \
/run/context/build_scripts/HWE.sh
# ==============================================================================
# GNOME variant - HWE base with GNOME desktop
# ==============================================================================
FROM base-hwe AS gnome
ARG DESKTOP_FLAVOR=gnome
ENV DESKTOP_FLAVOR=gnome
# Lock glib2 for consistency
RUN dnf versionlock add glib2
# Makes `/opt` writeable by default
# Needs to be here to make the main image build strict (no /opt there)
RUN rm -rf /opt && ln -s /var/opt /opt
# ==============================================================================
# KDE variant - HWE base with KDE desktop
# ==============================================================================
FROM base-hwe AS kde
ARG DESKTOP_FLAVOR=kde
ENV DESKTOP_FLAVOR=kde
# Lock glib2 for consistency
RUN dnf versionlock add glib2
# Makes `/opt` writeable by default
# Needs to be here to make the main image build strict (no /opt there)
RUN rm -rf /opt && ln -s /var/opt /opt
# ==============================================================================
# Niri variant - HWE base with Niri+DMS desktop
# ==============================================================================
FROM base-hwe AS niri
ARG DESKTOP_FLAVOR=niri
ENV DESKTOP_FLAVOR=niri
# Lock glib2 for consistency
RUN dnf versionlock add glib2
# Makes `/opt` writeable by default
# Needs to be here to make the main image build strict (no /opt there)
RUN rm -rf /opt && ln -s /var/opt /opt