# ============================================================================= # KAMOS - Gaming OS - Containerfile # "Play. Perform. Dominate." # Base: Bazzite NVIDIA stable (proprietary NVIDIA driver, gaming-tuned bootc) # ============================================================================= # # Why this base: # ghcr.io/ublue-os/bazzite-nvidia:stable ships with the proprietary NVIDIA # driver baked in via akmods. If you want the open-kernel-module variant, # swap to ghcr.io/ublue-os/bazzite-nvidia-open:stable instead. # # Architecture: x86_64 only. This image will NOT boot natively on an Apple # Silicon Mac. Test it inside VMware Fusion (with x86_64 emulation enabled) # or install on a real NVIDIA PC. # ----------------------------------------------------------------------------- ARG BASE_IMAGE="ghcr.io/ublue-os/bazzite-nvidia" ARG BASE_TAG="stable" FROM ${BASE_IMAGE}:${BASE_TAG} # OCI labels - good practice and surface nicely on registries / artifacthub. LABEL org.opencontainers.image.title="KAMOS" LABEL org.opencontainers.image.description="KAMOS Gaming OS - Bazzite NVIDIA stable bootc image. Play. Perform. Dominate." LABEL org.opencontainers.image.vendor="Khalaf" LABEL org.opencontainers.image.source="https://cgi.medsys.cloud/mkm1971/kamos" LABEL org.opencontainers.image.licenses="Apache-2.0" LABEL io.artifacthub.package.readme-url="https://cgi.medsys.cloud/mkm1971/kamos/raw/branch/main/README.md" # ----------------------------------------------------------------------------- # Stage 1: copy our customisations into the build context # Note: build_files goes to /ctx (NOT /tmp) because the RUN below mounts a # tmpfs over /tmp which would hide anything we put there. # ----------------------------------------------------------------------------- COPY build_files/ /ctx/ COPY system_files/ / # bootc install config - tells bootc-image-builder our rootfs is btrfs. # Without a file under /usr/lib/bootc/install/, bib errors out with # "missing required info: DefaultRootfs". 00- prefix loads first; any # upstream Bazzite file with a higher prefix can still override. COPY build_files/bootc-install.toml /usr/lib/bootc/install/00-kamos.toml # ----------------------------------------------------------------------------- # Stage 2: run the customisation script # - install / remove packages # - apply branding (wallpaper, plymouth theme, os-release, GRUB logo) # - any other system tweaks # ----------------------------------------------------------------------------- RUN --mount=type=cache,dst=/var/cache \ --mount=type=cache,dst=/var/log \ --mount=type=tmpfs,dst=/tmp \ chmod +x /ctx/build.sh && \ bash /ctx/build.sh && \ ostree container commit # ----------------------------------------------------------------------------- # Sanity: make sure the image is bootc-compatible after our changes. # `bootc container lint` is run by ostree container commit but we surface a # friendly error via a final no-op so layer caching is clear. # -----------------------------------------------------------------------------