62 lines
3.0 KiB
Docker
62 lines
3.0 KiB
Docker
# =============================================================================
|
|
# 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.
|
|
# -----------------------------------------------------------------------------
|