2026-02-17 17:27:26 +01:00
|
|
|
###############################################################################
|
|
|
|
|
# PROJECT NAME CONFIGURATION
|
|
|
|
|
###############################################################################
|
2026-05-10 19:16:03 +02:00
|
|
|
# Name: fluffy-pancake
|
2026-02-17 17:27:26 +01:00
|
|
|
#
|
|
|
|
|
# IMPORTANT: Change "finpilot" above to your desired project name.
|
|
|
|
|
# This name should be used consistently throughout the repository in:
|
|
|
|
|
# - Justfile: export image_name := env("IMAGE_NAME", "your-name-here")
|
|
|
|
|
# - README.md: # your-name-here (title)
|
|
|
|
|
# - artifacthub-repo.yml: repositoryID: your-name-here
|
|
|
|
|
# - custom/ujust/README.md: localhost/your-name-here:stable (in bootc switch example)
|
|
|
|
|
#
|
|
|
|
|
# The project name defined here is the single source of truth for your
|
|
|
|
|
# custom image's identity. When changing it, update all references above
|
|
|
|
|
# to maintain consistency.
|
|
|
|
|
###############################################################################
|
|
|
|
|
|
|
|
|
|
###############################################################################
|
|
|
|
|
# MULTI-STAGE BUILD ARCHITECTURE
|
|
|
|
|
###############################################################################
|
|
|
|
|
FROM scratch AS ctx
|
|
|
|
|
|
2026-05-01 13:35:20 +02:00
|
|
|
# Kopiere die Build-Skripte und die neuen Konfigurations-Artefakte in den Kontext
|
2026-02-17 17:27:26 +01:00
|
|
|
COPY build /build
|
2026-05-01 13:35:20 +02:00
|
|
|
COPY configs /configs
|
|
|
|
|
COPY scripts /scripts
|
2026-02-17 17:27:26 +01:00
|
|
|
|
2026-05-01 13:35:20 +02:00
|
|
|
###############################################################################
|
|
|
|
|
# BASE IMAGE
|
|
|
|
|
###############################################################################
|
2026-04-28 18:42:34 +02:00
|
|
|
FROM quay.io/fedora/fedora-kinoite:44
|
2026-02-17 17:27:26 +01:00
|
|
|
|
2026-05-01 13:35:20 +02:00
|
|
|
### /opt (Unverändert)
|
2026-02-17 17:27:26 +01:00
|
|
|
# RUN rm /opt && mkdir /opt
|
|
|
|
|
|
2026-05-01 13:35:20 +02:00
|
|
|
###############################################################################
|
|
|
|
|
# EXECUTION STAGE
|
|
|
|
|
###############################################################################
|
|
|
|
|
# Hier werden die Skripte aus dem Kontext-Stage ausgeführt
|
2026-02-17 17:27:26 +01:00
|
|
|
RUN --mount=type=bind,from=ctx,source=/,target=/ctx \
|
2026-05-01 13:35:20 +02:00
|
|
|
--mount=type=bind,from=ctx,source=/configs,target=/configs \
|
|
|
|
|
--mount=type=bind,from=ctx,source=/scripts,target=/scripts \
|
2026-02-17 17:27:26 +01:00
|
|
|
--mount=type=cache,dst=/var/cache \
|
|
|
|
|
--mount=type=cache,dst=/var/log \
|
|
|
|
|
--mount=type=tmpfs,dst=/tmp \
|
2026-04-28 18:13:10 +02:00
|
|
|
for s in /ctx/build/*.sh; do echo "Running $s" && sh "$s" || exit 1; done
|
2026-04-24 20:54:59 +02:00
|
|
|
|
2026-05-01 13:35:20 +02:00
|
|
|
###############################################################################
|
|
|
|
|
# CONFIGURATION LAYER (Der "saubere" Teil)
|
|
|
|
|
###############################################################################
|
2026-03-02 18:45:46 +01:00
|
|
|
|
2026-05-01 13:35:20 +02:00
|
|
|
# 1. Kopiere die Filesystem-Fixes (tmpfiles.d)
|
|
|
|
|
# COPY erstellt die Zielpfade automatisch, falls sie noch nicht existieren.
|
|
|
|
|
COPY configs/bootc-fix.conf /etc/tmpfiles.d/
|
2026-04-03 18:03:04 +02:00
|
|
|
|
2026-05-01 15:22:47 +02:00
|
|
|
# 2. Kopiere den Systemd-Overrides (Update-Timer und -Service)
|
|
|
|
|
COPY configs/bootc-timer-override.conf /etc/systemd/system/bootc-fetch-apply-updates.timer.d/override.conf
|
2026-05-01 16:13:29 +02:00
|
|
|
COPY configs/bootc-override.conf /etc/systemd/system/bootc-fetch-apply-updates.service.d/override.conf
|
2026-05-01 13:35:20 +02:00
|
|
|
|
|
|
|
|
# 3. Kopiere das Benachrichtigungs-Skript
|
|
|
|
|
# Wichtig: Das Skript muss auf deinem Host bereits mit 'chmod +x' markiert sein!
|
|
|
|
|
COPY scripts/notify-bootc-user.sh /usr/bin/
|
|
|
|
|
|
2026-05-01 15:22:47 +02:00
|
|
|
|
2026-05-01 13:35:20 +02:00
|
|
|
###############################################################################
|
2026-05-17 18:09:38 +02:00
|
|
|
# LINTING & NATIVE RE-CHUNK GENERATION
|
2026-05-01 13:35:20 +02:00
|
|
|
###############################################################################
|
2026-05-17 18:09:38 +02:00
|
|
|
# Wir räumen zuerst auf, validieren das System via bootc container lint und
|
|
|
|
|
# erzeugen im Anschluss direkt im Image das 128-Layer OCI-Archiv.
|
2026-05-12 12:18:55 +02:00
|
|
|
RUN rm -rf /tmp/build /root/.cache/dnf/* && \
|
2026-05-17 18:31:26 +02:00
|
|
|
bootc container lint
|
2026-05-01 13:35:20 +02:00
|
|
|
|