Drop --layers from the build to avoid slow layer commits, and default
PULL_POLICY to missing so the base image is only re-pulled when absent.
This commit is contained in:
1 parent
9275d2c4a4
commit
0920b351b7
2 files changed
+27
-15
No files matched your search
@@ -1,14 +1,18 @@
|
||||
# My Fedora - Distribution Fedora Personnalisée
|
||||
|
||||
Distribution Fedora 44 personnalisée basée sur Fedora Bootc avec KDE Plasma et un ensemble d'outils de développement préinstallés.
|
||||
Distribution Fedora 44 personnalisée basée sur Fedora Bootc avec GNOME, le compositeur Umbriel et le shell Noctalia, plus un ensemble d'outils de développement préinstallés.
|
||||
|
||||
## Caractéristiques
|
||||
|
||||
### Environnement de Bureau
|
||||
- **KDE Plasma** (`@kde-desktop-environment`) avec support matériel complet
|
||||
- **Plasma Login Manager** (`plasmalogin`) à la place de SDDM
|
||||
- **GNOME** (`@gnome-desktop`) avec support matériel complet
|
||||
- **GDM** comme gestionnaire de connexion (GNOME Initial Setup crée le premier compte au boot)
|
||||
- **Umbriel** (compositeur Wayland, build nightly) et **Noctalia** (shell) via le dépôt Terra
|
||||
- **xdg-desktop-portal-umbriel-nightly** pour les portails XDG
|
||||
- **Nautilus** avec l'extension `nautilus-my-computer` (dépôt Copr)
|
||||
- **Plymouth** pour l'animation de démarrage
|
||||
- **Vulkan** et pilotes Mesa (x86_64 et i686)
|
||||
- Pack d'icônes **MoreWaita** et boutons de fenêtre style Windows (`:minimize,maximize,close`)
|
||||
|
||||
### Outils de Développement
|
||||
- **Development Tools** complet
|
||||
@@ -20,25 +24,27 @@ Distribution Fedora 44 personnalisée basée sur Fedora Bootc avec KDE Plasma et
|
||||
### Applications Préinstallées
|
||||
- **Mullvad VPN** - Client VPN sécurisé
|
||||
- **Filen** - Stockage cloud
|
||||
- **Bazaar** (Flatpak) - Gestionnaire d'applications
|
||||
- **Bazaar** (Flatpak) - Gestionnaire d'applications, installé au premier démarrage
|
||||
- **CUPS** - Support d'impression (avec `cups-pdf`)
|
||||
- **FFmpeg** (`ffmpeg-free`), GStreamer et `ffmpegthumbnailer`
|
||||
|
||||
### Configuration Système
|
||||
- **Locale** : Français (`fr_FR.UTF-8`)
|
||||
- **Clavier** : AZERTY (`fr`)
|
||||
- **Clavier** : AZERTY (`fr`), via `vconsole` et `xorg-keyboard.conf` pour GDM
|
||||
- **Fuseau horaire** : `Europe/Paris`
|
||||
- **Système de fichiers root** : Btrfs
|
||||
- **Flatpak** : Flathub configuré par défaut
|
||||
- **Flatpak** : Flathub et Bazaar ajoutés au premier démarrage (service `flatpak-first-boot`)
|
||||
- **Umbriel** : configuration par défaut dans `/etc/xdg/umbriel/config.toml` (autostart Noctalia)
|
||||
- **Module `xpad`** chargé au démarrage (manettes Xbox)
|
||||
|
||||
### Optimisations
|
||||
- `user.max_user_namespaces` augmenté pour Podman
|
||||
- Support FUSE pour overlayfs
|
||||
- Mise à jour automatique Bootc désactivée
|
||||
- PackageKit supprimé (gestion via Flatpak)
|
||||
- PackageKit et GNOME Software supprimés (gestion via Flatpak)
|
||||
- `dnf` avec `--setopt=tsflags=nodocs` (pas de documentation dans l'image)
|
||||
- Build avec cache de couches (`buildah bud --layers`) et pull de l'image de base (`--pull=always`)
|
||||
- Build sans `--layers` (les commits de couches sont très lents sur stockage `vfs`/disque lent) ; `PULL_POLICY=always` pour forcer la mise à jour de l'image de base
|
||||
- Flatpak installé dans une transaction isolée, avec copie du store SELinux et vérification du label `flatpak_helper_exec_t` au build
|
||||
|
||||
## Prérequis
|
||||
|
||||
@@ -56,10 +62,10 @@ Distribution Fedora 44 personnalisée basée sur Fedora Bootc avec KDE Plasma et
|
||||
|
||||
Construit l'image localement avec le tag `localhost/tintounn/my-fedora:latest`.
|
||||
|
||||
Le script utilise `buildah bud --layers --pull=always --isolation chroot`. Pour éviter de retélécharger l'image de base à chaque build local, tu peux utiliser :
|
||||
Le script utilise `buildah bud --pull=missing --isolation chroot` (l'image de base n'est retéléchargée que si elle est absente). Pour forcer la récupération de la dernière image de base :
|
||||
|
||||
```bash
|
||||
PULL_POLICY=missing ./build.sh
|
||||
PULL_POLICY=always ./build.sh
|
||||
```
|
||||
|
||||
### Générer une ISO bootable
|
||||
@@ -85,16 +91,17 @@ Pousse l'image vers `docker.io/tintounn/my-fedora:latest`.
|
||||
- **Base** : `registry.fedoraproject.org/fedora-bootc:44`
|
||||
- **Type** : Image conteneur bootable (Bootc)
|
||||
- **Target** : Système graphique (`graphical.target`)
|
||||
- **Dépôts supplémentaires** : Terra (`repos.fyralabs.com`), Mullvad, Copr `yannmasoch/nautilus-my-computer`
|
||||
|
||||
## Services Activés
|
||||
|
||||
- `plasmalogin.service` (Plasma Login Manager)
|
||||
- `gdm.service` (GNOME Display Manager)
|
||||
- `NetworkManager.service`
|
||||
- `bluetooth.service`
|
||||
- `podman.socket`
|
||||
- `cups.service`
|
||||
- `mullvad-daemon.service`
|
||||
- `flatpak-first-boot.service` (installe Bazaar au premier démarrage)
|
||||
- `flatpak-first-boot.service` (ajoute Flathub et installe Bazaar au premier démarrage)
|
||||
|
||||
## Intégration Continue
|
||||
|
||||
@@ -113,6 +120,9 @@ Le pipeline CI construit et publie automatiquement l'image sur Docker Hub.
|
||||
├── build-iso.sh # Script de génération d'ISO
|
||||
├── push-image.sh # Script de publication
|
||||
├── iso.toml # Configuration de l'installeur Anaconda
|
||||
├── config/
|
||||
│ ├── umbriel.toml # Configuration Umbriel par défaut
|
||||
│ └── xorg-keyboard.conf # Clavier FR pour GDM
|
||||
├── services/
|
||||
│ └── flatpak-first-boot.service
|
||||
├── .woodpecker/
|
||||
@@ -126,6 +136,9 @@ Le pipeline CI construit et publie automatiquement l'image sur Docker Hub.
|
||||
- L'image utilise l'isolation `chroot` lors de la construction
|
||||
- Le builder d'ISO nécessite des privilèges élevés et l'accès au storage Podman
|
||||
- `ffmpeg` provient des dépôts Fedora (`ffmpeg-free`) : pour les codecs complets, activer RPM Fusion
|
||||
- Umbriel/Noctalia proviennent du dépôt tiers Terra (`--nogpgcheck` à l'ajout du dépôt)
|
||||
- Le dépôt Flathub est ajouté au premier démarrage, pas pendant le build (écrire dans `/var` est un anti-patron bootc)
|
||||
- Flatpak est installé dans une transaction isolée pour que le scriptlet `flatpak-selinux` enregistre correctement le module SELinux ; le build échoue si le label `flatpak_helper_exec_t` est absent de la politique compilée
|
||||
|
||||
## Licence
|
||||
|
||||
|
||||
Reference in new issue
Block a user