Containerfile aktualisiert
This commit is contained in:
+11
-13
@@ -16,14 +16,12 @@
|
|||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# MULTI-STAGE BUILD ARCHITECTURE
|
# MULTI-STAGE BUILD ARCHITECTURE (Cache-Isolierung)
|
||||||
###############################################################################
|
###############################################################################
|
||||||
FROM scratch AS ctx
|
# Isolierte Kontext-Stage NUR für die Build-Skripte.
|
||||||
|
# Änderungen an /configs oder /scripts hebeln dadurch die DNF-Layer (1-5) NICHT mehr aus!
|
||||||
# Kopiere die Build-Skripte und die neuen Konfigurations-Artefakte in den Kontext
|
FROM scratch AS build-ctx
|
||||||
COPY build /build
|
COPY build /build
|
||||||
COPY configs /configs
|
|
||||||
COPY scripts /scripts
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# BASE IMAGE
|
# BASE IMAGE
|
||||||
@@ -38,35 +36,35 @@ FROM quay.io/fedora/fedora-kinoite:44
|
|||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
# LAYER 1: Repositories einrichten (Ändert sich fast nie)
|
# LAYER 1: Repositories einrichten (Ändert sich fast nie)
|
||||||
RUN --mount=type=bind,from=ctx,source=/build/10-repos.sh,target=/tmp/10-repos.sh \
|
RUN --mount=type=bind,from=build-ctx,source=/build/10-repos.sh,target=/tmp/10-repos.sh \
|
||||||
--mount=type=cache,dst=/var/cache \
|
--mount=type=cache,dst=/var/cache \
|
||||||
--mount=type=cache,dst=/var/log \
|
--mount=type=cache,dst=/var/log \
|
||||||
--mount=type=tmpfs,dst=/tmp \
|
--mount=type=tmpfs,dst=/tmp \
|
||||||
bash /tmp/10-repos.sh && dnf5 clean all
|
bash /tmp/10-repos.sh && dnf5 clean all
|
||||||
|
|
||||||
# LAYER 2: Unerwünschte Pakete entfernen (Bereinigungsschicht)
|
# LAYER 2: Unerwünschte Pakete entfernen (Bereinigungsschicht - vorgezogen)
|
||||||
RUN --mount=type=bind,from=ctx,source=/build/20-remove-packages.sh,target=/tmp/20-remove-packages.sh \
|
RUN --mount=type=bind,from=build-ctx,source=/build/20-remove-packages.sh,target=/tmp/20-remove-packages.sh \
|
||||||
--mount=type=cache,dst=/var/cache \
|
--mount=type=cache,dst=/var/cache \
|
||||||
--mount=type=cache,dst=/var/log \
|
--mount=type=cache,dst=/var/log \
|
||||||
--mount=type=tmpfs,dst=/tmp \
|
--mount=type=tmpfs,dst=/tmp \
|
||||||
bash /tmp/20-remove-packages.sh
|
bash /tmp/20-remove-packages.sh
|
||||||
|
|
||||||
# LAYER 3: Virtualisierung & Tools (Großer Download - stark gecacht)
|
# LAYER 3: Virtualisierung & Tools (Großer Download - stark gecacht)
|
||||||
RUN --mount=type=bind,from=ctx,source=/build/30-virt.sh,target=/tmp/30-virt.sh \
|
RUN --mount=type=bind,from=build-ctx,source=/build/30-virt.sh,target=/tmp/30-virt.sh \
|
||||||
--mount=type=cache,dst=/var/cache \
|
--mount=type=cache,dst=/var/cache \
|
||||||
--mount=type=cache,dst=/var/log \
|
--mount=type=cache,dst=/var/log \
|
||||||
--mount=type=tmpfs,dst=/tmp \
|
--mount=type=tmpfs,dst=/tmp \
|
||||||
bash /tmp/30-virt.sh
|
bash /tmp/30-virt.sh
|
||||||
|
|
||||||
# LAYER 4: Multimedia Stack (Großer Download - stark gecacht)
|
# LAYER 4: Multimedia Stack (Großer Download - stark gecacht)
|
||||||
RUN --mount=type=bind,from=ctx,source=/build/40-multimedia.sh,target=/tmp/40-multimedia.sh \
|
RUN --mount=type=bind,from=build-ctx,source=/build/40-multimedia.sh,target=/tmp/40-multimedia.sh \
|
||||||
--mount=type=cache,dst=/var/cache \
|
--mount=type=cache,dst=/var/cache \
|
||||||
--mount=type=cache,dst=/var/log \
|
--mount=type=cache,dst=/var/log \
|
||||||
--mount=type=tmpfs,dst=/tmp \
|
--mount=type=tmpfs,dst=/tmp \
|
||||||
bash /tmp/40-multimedia.sh
|
bash /tmp/40-multimedia.sh
|
||||||
|
|
||||||
# LAYER 5: Flatpak Vorbereitung (Winzig, ganz unten)
|
# LAYER 5: Flatpak Vorbereitung (Winzig, ganz unten)
|
||||||
RUN --mount=type=bind,from=ctx,source=/build/50-prepare-flatpak-for-bazaar.sh,target=/tmp/50-prepare-flatpak-for-bazaar.sh \
|
RUN --mount=type=bind,from=build-ctx,source=/build/50-prepare-flatpak-for-bazaar.sh,target=/tmp/50-prepare-flatpak-for-bazaar.sh \
|
||||||
--mount=type=tmpfs,dst=/tmp \
|
--mount=type=tmpfs,dst=/tmp \
|
||||||
bash /tmp/50-prepare-flatpak-for-bazaar.sh
|
bash /tmp/50-prepare-flatpak-for-bazaar.sh
|
||||||
|
|
||||||
@@ -104,4 +102,4 @@ RUN systemctl enable \
|
|||||||
###############################################################################
|
###############################################################################
|
||||||
# Wir räumen zuerst auf, validieren das System via bootc container lint
|
# Wir räumen zuerst auf, validieren das System via bootc container lint
|
||||||
RUN rm -rf /root/.cache/dnf/* && \
|
RUN rm -rf /root/.cache/dnf/* && \
|
||||||
bootc container lint
|
bootc container lint
|
||||||
Reference in New Issue
Block a user