aurora/Containerfile.in
renner a361fd3718
fix(ci): add commit hash as org.opencontainers.image.revision label (#2340)
This label was previously created by the hhd/legacy-rechunker instead of
on the image build process. We are now using the build-chunked-oci and
in the near future chunkah which do not mess with the labels.

Our changelogs script expects this label to be present in order for the
commits since last release to show up.

fixes: https://github.com/ublue-os/aurora/issues/2338
2026-06-07 16:15:54 +00:00

148 lines
5.5 KiB
Text

ARG BASE_IMAGE_ORG
ARG BASE_IMAGE_NAME
ARG BASE_IMAGE="${BASE_IMAGE_ORG}/${BASE_IMAGE_NAME}"
ARG FEDORA_MAJOR_VERSION
ARG AKMODS_FLAVOR
ARG KERNEL
ARG COMMON_IMAGE
ARG COMMON_IMAGE_SHA
ARG BREW_IMAGE
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=""
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/03-fetch.sh && \
/ctx/build_files/base/04-nvidia.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/03-fetch.sh && \
/ctx/build_files/base/04-nvidia.sh && \
/ctx/build_files/base/zfs.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 \
bootc container lint