2023-03-08 09:57:15 -09:00
|
|
|
ARG BASE_IMAGE_NAME="${BASE_IMAGE_NAME:-silverblue}"
|
|
|
|
|
ARG IMAGE_FLAVOR="${IMAGE_FLAVOR:-main}"
|
2023-10-13 08:19:51 -08:00
|
|
|
ARG AKMODS_FLAVOR="${AKMODS_FLAVOR:-main}"
|
2024-05-07 15:51:42 -08:00
|
|
|
ARG SOURCE_IMAGE="${SOURCE_IMAGE:-${BASE_IMAGE_NAME}-${IMAGE_FLAVOR}}"
|
2023-03-08 09:57:15 -09:00
|
|
|
ARG BASE_IMAGE="ghcr.io/ublue-os/${SOURCE_IMAGE}"
|
2024-04-23 07:03:15 -08:00
|
|
|
ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION:-40}"
|
2023-06-18 18:42:33 -08:00
|
|
|
ARG TARGET_BASE="${TARGET_BASE:-bluefin}"
|
2024-07-14 16:26:52 -08:00
|
|
|
ARG NVIDIA_TYPE="${NVIDIA_TYPE:-}"
|
2024-10-18 14:50:35 -08:00
|
|
|
ARG KERNEL="${KERNEL:-6.10.10-200.fc40.x86_64}"
|
2024-06-30 17:09:18 -08:00
|
|
|
ARG UBLUE_IMAGE_TAG="${UBLUE_IMAGE_TAG:-latest}"
|
2024-09-28 02:57:09 -08:00
|
|
|
ARG SHA_HEAD_SHORT="${SHA_HEAD_SHORT}"
|
2023-03-08 09:57:15 -09:00
|
|
|
|
2024-07-23 07:25:28 -08:00
|
|
|
# FROM's for Mounting
|
2024-05-07 15:51:42 -08:00
|
|
|
ARG KMOD_SOURCE_COMMON="ghcr.io/ublue-os/akmods:${AKMODS_FLAVOR}-${FEDORA_MAJOR_VERSION}"
|
2024-08-09 04:47:10 -08:00
|
|
|
ARG NVIDIA_CACHE="ghcr.io/ublue-os/akmods-nvidia:${AKMODS_FLAVOR}-${FEDORA_MAJOR_VERSION}"
|
2024-07-14 16:26:52 -08:00
|
|
|
ARG KERNEL_CACHE="ghcr.io/ublue-os/${AKMODS_FLAVOR}-kernel:${KERNEL}"
|
2024-07-01 04:52:04 -08:00
|
|
|
FROM ${KMOD_SOURCE_COMMON} AS akmods
|
2024-07-14 16:26:52 -08:00
|
|
|
FROM ${NVIDIA_CACHE} AS nvidia_cache
|
|
|
|
|
FROM ${KERNEL_CACHE} AS kernel_cache
|
2024-05-07 15:51:42 -08:00
|
|
|
|
2024-07-23 07:25:28 -08:00
|
|
|
FROM scratch AS ctx
|
|
|
|
|
COPY / /
|
|
|
|
|
|
2023-09-02 08:56:56 -08:00
|
|
|
## bluefin image section
|
2024-04-06 15:20:55 -08:00
|
|
|
FROM ${BASE_IMAGE}:${FEDORA_MAJOR_VERSION} AS base
|
2023-03-08 09:57:15 -09:00
|
|
|
|
2023-09-23 11:01:43 -08:00
|
|
|
ARG IMAGE_NAME="${IMAGE_NAME}"
|
2023-10-20 09:01:52 -08:00
|
|
|
ARG IMAGE_VENDOR="${IMAGE_VENDOR}"
|
2023-09-23 11:01:43 -08:00
|
|
|
ARG IMAGE_FLAVOR="${IMAGE_FLAVOR}"
|
2023-10-13 08:19:51 -08:00
|
|
|
ARG AKMODS_FLAVOR="${AKMODS_FLAVOR}"
|
|
|
|
|
ARG BASE_IMAGE_NAME="${BASE_IMAGE_NAME}"
|
2023-03-08 09:57:15 -09:00
|
|
|
ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION}"
|
2024-07-14 16:26:52 -08:00
|
|
|
ARG NVIDIA_TYPE="${NVIDIA_TYPE:-}"
|
2024-10-18 14:50:35 -08:00
|
|
|
ARG KERNEL="${KERNEL:-6.10.10-200.fc40.x86_64}"
|
2024-06-30 17:09:18 -08:00
|
|
|
ARG UBLUE_IMAGE_TAG="${UBLUE_IMAGE_TAG:-latest}"
|
2024-09-28 02:57:09 -08:00
|
|
|
ARG SHA_HEAD_SHORT="${SHA_HEAD_SHORT}"
|
2024-02-11 14:22:55 -09:00
|
|
|
|
2024-04-06 15:20:55 -08:00
|
|
|
# Build, cleanup, commit.
|
2024-07-23 07:25:28 -08:00
|
|
|
RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
|
|
|
|
--mount=type=bind,from=ctx,source=/,target=/ctx \
|
|
|
|
|
--mount=type=bind,from=akmods,source=/rpms,target=/tmp/akmods \
|
2024-07-17 03:47:48 -08:00
|
|
|
--mount=type=bind,from=nvidia_cache,source=/rpms,target=/tmp/akmods-rpms \
|
|
|
|
|
--mount=type=bind,from=kernel_cache,source=/tmp/rpms,target=/tmp/kernel-rpms \
|
|
|
|
|
rpm-ostree cliwrap install-to-root / && \
|
2024-06-26 13:37:44 -08:00
|
|
|
mkdir -p /var/lib/alternatives && \
|
2024-07-23 07:25:28 -08:00
|
|
|
/ctx/build_files/build-base.sh && \
|
2024-06-26 13:37:44 -08:00
|
|
|
mv /var/lib/alternatives /staged-alternatives && \
|
2024-07-23 07:25:28 -08:00
|
|
|
/ctx/build_files/clean-stage.sh && \
|
2024-06-26 13:37:44 -08:00
|
|
|
ostree container commit && \
|
|
|
|
|
mkdir -p /var/lib && mv /staged-alternatives /var/lib/alternatives && \
|
2023-03-16 11:54:44 -08:00
|
|
|
mkdir -p /var/tmp && \
|
2024-06-26 13:37:44 -08:00
|
|
|
chmod -R 1777 /var/tmp
|
2023-03-08 09:57:15 -09:00
|
|
|
|
2023-05-26 10:53:26 -08:00
|
|
|
## bluefin-dx developer edition image section
|
2024-04-06 15:20:55 -08:00
|
|
|
FROM base AS dx
|
2023-05-25 18:17:09 -08:00
|
|
|
|
2023-09-23 11:01:43 -08:00
|
|
|
ARG IMAGE_NAME="${IMAGE_NAME}"
|
2023-10-20 09:01:52 -08:00
|
|
|
ARG IMAGE_VENDOR="${IMAGE_VENDOR}"
|
2023-09-23 11:01:43 -08:00
|
|
|
ARG BASE_IMAGE_NAME="${BASE_IMAGE_NAME}"
|
|
|
|
|
ARG IMAGE_FLAVOR="${IMAGE_FLAVOR}"
|
2024-04-28 09:38:06 -08:00
|
|
|
ARG AKMODS_FLAVOR="${AKMODS_FLAVOR}"
|
2023-05-25 18:17:09 -08:00
|
|
|
ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION}"
|
2024-07-14 16:26:52 -08:00
|
|
|
ARG NVIDIA_TYPE="${NVIDIA_TYPE:-}"
|
2024-10-18 14:50:35 -08:00
|
|
|
ARG KERNEL="${KERNEL:-6.10.10-200.fc40.x86_64}"
|
2024-06-30 17:09:18 -08:00
|
|
|
ARG UBLUE_IMAGE_TAG="${UBLUE_IMAGE_TAG:-latest}"
|
2023-05-25 18:17:09 -08:00
|
|
|
|
2024-04-06 15:20:55 -08:00
|
|
|
# Build, Clean-up, Commit
|
2024-07-23 07:25:28 -08:00
|
|
|
RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
|
|
|
|
--mount=type=bind,from=ctx,source=/,target=/ctx \
|
|
|
|
|
--mount=type=bind,from=akmods,source=/rpms,target=/tmp/akmods \
|
2024-07-17 03:47:48 -08:00
|
|
|
mkdir -p /var/lib/alternatives && \
|
2024-07-23 07:25:28 -08:00
|
|
|
/ctx/build_files/build-dx.sh && \
|
2024-03-09 15:42:18 -09:00
|
|
|
fc-cache --system-only --really-force --verbose && \
|
2024-06-26 13:37:44 -08:00
|
|
|
mv /var/lib/alternatives /staged-alternatives && \
|
2024-07-23 07:25:28 -08:00
|
|
|
/ctx/build_files/clean-stage.sh \
|
2024-06-26 13:37:44 -08:00
|
|
|
ostree container commit && \
|
|
|
|
|
mkdir -p /var/lib && mv /staged-alternatives /var/lib/alternatives && \
|
2024-04-06 15:20:55 -08:00
|
|
|
mkdir -p /var/tmp && \
|
2024-06-26 13:37:44 -08:00
|
|
|
chmod -R 1777 /var/tmp
|