ARG BASE_IMAGE_NAME="${BASE_IMAGE_NAME:-silverblue}" ARG IMAGE_FLAVOR="${IMAGE_FLAVOR:-main}" ARG AKMODS_FLAVOR="${AKMODS_FLAVOR:-main}" ARG SOURCE_IMAGE="${SOURCE_IMAGE:-${BASE_IMAGE_NAME}-${IMAGE_FLAVOR}}" ARG BASE_IMAGE="ghcr.io/ublue-os/${SOURCE_IMAGE}" ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION:-40}" ARG TARGET_BASE="${TARGET_BASE:-bluefin}" ARG COREOS_TYPE="${COREOS_TYPE:-}" ARG KERNEL="${KERNEL:-}" ARG UBLUE_IMAGE_TAG="${UBLUE_IMAGE_TAG:-latest}" # FROM's for copying ARG KMOD_SOURCE_COMMON="ghcr.io/ublue-os/akmods:${AKMODS_FLAVOR}-${FEDORA_MAJOR_VERSION}" ARG COREOS_KMODS="ghcr.io/ublue-os/ucore-kmods:stable" ARG COREOS_NVIDIA="ghcr.io/ublue-os/akmods-nvidia:coreos-${FEDORA_MAJOR_VERSION}" FROM ${KMOD_SOURCE_COMMON} AS akmods FROM ${COREOS_NVIDIA} AS coreos_nvidia ## bluefin image section FROM ${BASE_IMAGE}:${FEDORA_MAJOR_VERSION} AS base ARG IMAGE_NAME="${IMAGE_NAME}" ARG IMAGE_VENDOR="${IMAGE_VENDOR}" ARG IMAGE_FLAVOR="${IMAGE_FLAVOR}" ARG AKMODS_FLAVOR="${AKMODS_FLAVOR}" ARG BASE_IMAGE_NAME="${BASE_IMAGE_NAME}" ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION}" ARG COREOS_TYPE="${COREOS_TYPE:-}" ARG KERNEL="${KERNEL:-}" ARG UBLUE_IMAGE_TAG="${UBLUE_IMAGE_TAG:-latest}" # COPY Build Files COPY build_files/base build_files/shared /tmp/build/ COPY system_files/shared system_files/${BASE_IMAGE_NAME} / COPY just /tmp/just COPY packages.json /tmp/packages.json # Copy ublue-update.toml to tmp first, to avoid being overwritten. COPY /system_files/shared/usr/etc/ublue-update/ublue-update.toml /tmp/ublue-update.toml # COPY ublue kmods, add needed negativo17 repo and then immediately disable due to incompatibility with RPMFusion COPY --from=akmods /rpms /tmp/akmods-rpms COPY --from=coreos_nvidia /rpms /tmp/akmods-rpms # Build, cleanup, commit. RUN rpm-ostree cliwrap install-to-root / && \ mkdir -p /var/lib/alternatives && \ bash -c ". /tmp/build/build-base.sh" && \ mv /var/lib/alternatives /staged-alternatives && \ rm -rf /tmp/* /var/* && \ ostree container commit && \ mkdir -p /var/lib && mv /staged-alternatives /var/lib/alternatives && \ mkdir -p /var/tmp && \ chmod -R 1777 /var/tmp ## bluefin-dx developer edition image section FROM base AS dx ARG IMAGE_NAME="${IMAGE_NAME}" ARG IMAGE_VENDOR="${IMAGE_VENDOR}" ARG BASE_IMAGE_NAME="${BASE_IMAGE_NAME}" ARG IMAGE_FLAVOR="${IMAGE_FLAVOR}" ARG AKMODS_FLAVOR="${AKMODS_FLAVOR}" ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION}" ARG COREOS_TYPE="${COREOS_TYPE:-}" ARG KERNEL="${KERNEL:-}" ARG UBLUE_IMAGE_TAG="${UBLUE_IMAGE_TAG:-latest}" # dx specific files come from the dx directory in this repo COPY build_files/dx build_files/shared /tmp/build/ COPY system_files/dx / COPY packages.json /tmp/packages.json # Copy akmods from ublue COPY --from=akmods /rpms /tmp/akmods-rpms # Build, Clean-up, Commit RUN mkdir -p /var/lib/alternatives && \ bash -c ". /tmp/build/build-dx.sh" && \ fc-cache --system-only --really-force --verbose && \ mv /var/lib/alternatives /staged-alternatives && \ rm -rf /tmp/* /var/* && \ ostree container commit && \ mkdir -p /var/lib && mv /staged-alternatives /var/lib/alternatives && \ mkdir -p /var/tmp && \ chmod -R 1777 /var/tmp