149 lines
5.9 KiB
Text
149 lines
5.9 KiB
Text
ARG BASE_IMAGE_ORG="${BASE_IMAGE_ORG}:-quay.io/fedora-ostree-desktops"
|
|
ARG BASE_IMAGE_NAME="${BASE_IMAGE_NAME}:-kinoite"
|
|
ARG BASE_IMAGE="${BASE_IMAGE_ORG}/${BASE_IMAGE_NAME}"
|
|
ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION}:-43"
|
|
ARG AKMODS_FLAVOR="${AKMODS_FLAVOR}-${FEDORA_MAJOR_VERSION}:-coreos-stable-43"
|
|
ARG KERNEL="${KERNEL}:-6.17.12-300.fc43.x86_64"
|
|
ARG COMMON_IMAGE="${COMMON_IMAGE}:-ghcr.io/get-aurora-dev/common:latest"
|
|
ARG COMMON_IMAGE_SHA=""
|
|
ARG BREW_IMAGE="${BREW_IMAGE}:-ghcr.io/ublue-os/brew:latest"
|
|
ARG BREW_IMAGE_SHA=""
|
|
|
|
FROM ${COMMON_IMAGE}@${COMMON_IMAGE_SHA} AS common
|
|
FROM ${BREW_IMAGE}@${BREW_IMAGE_SHA} AS brew
|
|
|
|
FROM ghcr.io/ublue-os/akmods:${AKMODS_FLAVOR}-${FEDORA_MAJOR_VERSION}-${KERNEL} AS akmods
|
|
|
|
#if defined(NVIDIA)
|
|
FROM ghcr.io/ublue-os/akmods-nvidia-open:${AKMODS_FLAVOR}-${FEDORA_MAJOR_VERSION}-${KERNEL} AS akmods-nvidia-open
|
|
#endif
|
|
|
|
#if defined(ZFS)
|
|
FROM ghcr.io/ublue-os/akmods-zfs:${AKMODS_FLAVOR}-${FEDORA_MAJOR_VERSION}-${KERNEL} AS akmods-zfs
|
|
#endif
|
|
|
|
FROM scratch AS ctx
|
|
COPY /build_files /build_files
|
|
|
|
# /* https://github.com/get-aurora-dev/common */
|
|
COPY --from=common /logos /system_files/shared
|
|
COPY --from=common /system_files /system_files
|
|
COPY --from=common /wallpapers /system_files/shared
|
|
|
|
# /* https://github.com/ublue-os/brew */
|
|
COPY --from=brew /system_files /system_files/shared
|
|
|
|
# /* Overwrite files from common if necessary */
|
|
COPY /system_files /system_files
|
|
|
|
# /* aurora image section */
|
|
FROM ${BASE_IMAGE}:${FEDORA_MAJOR_VERSION} AS base
|
|
|
|
ARG AKMODS_FLAVOR="main"
|
|
ARG BASE_IMAGE_NAME="${BASE_IMAGE_NAME}"
|
|
ARG FEDORA_MAJOR_VERSION=""
|
|
ARG IMAGE_NAME="aurora"
|
|
ARG IMAGE_VENDOR="ublue-os"
|
|
ARG KERNEL=""
|
|
ARG SHA_HEAD_SHORT="dedbeef"
|
|
ARG UBLUE_IMAGE_TAG="latest"
|
|
ARG VERSION=""
|
|
ARG IMAGE_FLAVOR=""
|
|
|
|
# /* so ghcurl wrapper is available to all later RUNs */
|
|
ENV PATH="/tmp/scripts/helpers:${PATH}"
|
|
|
|
# /* Copy files from common/from system_files */
|
|
# /* Install Packages, miscellaneous things that need a network */
|
|
|
|
# /* aurora:latest no zfs or nvidia */
|
|
#if !defined(NVIDIA) && !defined(ZFS)
|
|
RUN --mount=type=tmpfs,dst=/boot \
|
|
--mount=type=tmpfs,dst=/var \
|
|
--mount=type=bind,from=ctx,source=/,target=/ctx \
|
|
--mount=type=cache,dst=/var/cache/libdnf5 \
|
|
--mount=type=bind,from=akmods,src=/kernel-rpms,dst=/tmp/kernel-rpms \
|
|
--mount=type=bind,from=akmods,src=/rpms/common,dst=/tmp/rpms/common \
|
|
--mount=type=bind,from=akmods,src=/rpms/kmods,dst=/tmp/rpms/kmods \
|
|
--mount=type=secret,id=GITHUB_TOKEN \
|
|
/ctx/build_files/shared/build.sh && \
|
|
/ctx/build_files/base/01-packages.sh && \
|
|
/ctx/build_files/base/02-install-common-kernel-akmods.sh && \
|
|
/ctx/build_files/base/03-fetch.sh
|
|
#endif
|
|
|
|
# /* aurora:stable with zfs no nvidia */
|
|
#if !defined(NVIDIA) && defined(ZFS)
|
|
RUN --mount=type=tmpfs,dst=/boot \
|
|
--mount=type=tmpfs,dst=/var \
|
|
--mount=type=bind,from=ctx,source=/,target=/ctx \
|
|
--mount=type=cache,dst=/var/cache/libdnf5 \
|
|
--mount=type=bind,from=akmods,src=/kernel-rpms,dst=/tmp/kernel-rpms \
|
|
--mount=type=bind,from=akmods,src=/rpms/common,dst=/tmp/rpms/common \
|
|
--mount=type=bind,from=akmods,src=/rpms/kmods,dst=/tmp/rpms/kmods \
|
|
--mount=type=bind,from=akmods-zfs,src=/rpms/kmods/zfs,dst=/tmp/rpms/kmods/zfs \
|
|
--mount=type=secret,id=GITHUB_TOKEN \
|
|
/ctx/build_files/shared/build.sh && \
|
|
/ctx/build_files/base/01-packages.sh && \
|
|
/ctx/build_files/base/02-install-common-kernel-akmods.sh && \
|
|
/ctx/build_files/base/zfs.sh && \
|
|
/ctx/build_files/base/03-fetch.sh
|
|
#endif
|
|
|
|
# /* aurora-nvidia-open:latest no zfs */
|
|
#if defined(NVIDIA) && !defined(ZFS)
|
|
RUN --mount=type=tmpfs,dst=/boot \
|
|
--mount=type=tmpfs,dst=/var \
|
|
--mount=type=bind,from=ctx,source=/,target=/ctx \
|
|
--mount=type=cache,dst=/var/cache/libdnf5 \
|
|
--mount=type=bind,from=akmods,src=/kernel-rpms,dst=/tmp/kernel-rpms \
|
|
--mount=type=bind,from=akmods,src=/rpms/common,dst=/tmp/rpms/common \
|
|
--mount=type=bind,from=akmods,src=/rpms/kmods,dst=/tmp/rpms/kmods \
|
|
--mount=type=bind,from=akmods-nvidia-open,src=/rpms,dst=/tmp/rpms/nvidia \
|
|
--mount=type=secret,id=GITHUB_TOKEN \
|
|
/ctx/build_files/shared/build.sh && \
|
|
/ctx/build_files/base/01-packages.sh && \
|
|
/ctx/build_files/base/02-install-common-kernel-akmods.sh && \
|
|
/ctx/build_files/base/nvidia.sh && \
|
|
/ctx/build_files/base/03-fetch.sh
|
|
#endif
|
|
|
|
# /* aurora-nvidia-open:stable with ZFS */
|
|
#if defined(NVIDIA) && defined(ZFS)
|
|
RUN --mount=type=tmpfs,dst=/boot \
|
|
--mount=type=tmpfs,dst=/var \
|
|
--mount=type=bind,from=ctx,source=/,target=/ctx \
|
|
--mount=type=cache,dst=/var/cache/libdnf5 \
|
|
--mount=type=bind,from=akmods,src=/kernel-rpms,dst=/tmp/kernel-rpms \
|
|
--mount=type=bind,from=akmods,src=/rpms/common,dst=/tmp/rpms/common \
|
|
--mount=type=bind,from=akmods,src=/rpms/kmods,dst=/tmp/rpms/kmods \
|
|
--mount=type=bind,from=akmods-nvidia-open,src=/rpms,dst=/tmp/rpms/nvidia \
|
|
--mount=type=bind,from=akmods-zfs,src=/rpms/kmods/zfs,dst=/tmp/rpms/kmods/zfs \
|
|
--mount=type=secret,id=GITHUB_TOKEN \
|
|
/ctx/build_files/shared/build.sh && \
|
|
/ctx/build_files/base/01-packages.sh && \
|
|
/ctx/build_files/base/02-install-common-kernel-akmods.sh && \
|
|
/ctx/build_files/base/nvidia.sh && \
|
|
/ctx/build_files/base/zfs.sh && \
|
|
/ctx/build_files/base/03-fetch.sh
|
|
#endif
|
|
|
|
# /* Everything that can be done offline after things are in place should be done here */
|
|
RUN --network=none \
|
|
--mount=type=tmpfs,dst=/boot \
|
|
--mount=type=tmpfs,dst=/run \
|
|
--mount=type=bind,from=ctx,source=/,target=/ctx \
|
|
/ctx/build_files/base/16-override-install.sh && \
|
|
/ctx/build_files/base/17-cleanup.sh && \
|
|
/ctx/build_files/base/18-image-info.sh && \
|
|
/ctx/build_files/base/19-initramfs.sh && \
|
|
/ctx/build_files/shared/validate-repos.sh && \
|
|
/ctx/build_files/shared/clean-stage.sh && \
|
|
/ctx/build_files/base/20-tests.sh
|
|
|
|
CMD ["/sbin/init"]
|
|
|
|
RUN --network=none \
|
|
--mount=type=tmpfs,dst=/run \
|
|
--mount=type=tmpfs,dst=/tmp \
|
|
bootc container lint
|