Enhance Containerfile: Add distrobox for improved container management and update removal of toolbox for a leaner installation
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/cron/ci Pipeline was successful

This commit is contained in:
2025-11-10 20:18:21 +01:00
parent a3e826358a
commit 82ba021392
2 changed files with 117 additions and 1 deletions

View File

@@ -18,6 +18,7 @@ RUN dnf install -y \
langpacks-fr \ langpacks-fr \
code \ code \
flatpak \ flatpak \
distrobox \
buildah \ buildah \
podman \ podman \
podman-docker \ podman-docker \
@@ -43,7 +44,7 @@ RUN dnf install -y \
gstreamer1-vaapi \ gstreamer1-vaapi \
ffmpeg \ ffmpeg \
xorg-x11-server-Xwayland \ xorg-x11-server-Xwayland \
&& dnf remove -y gnome-software gnome-software-rpm-ostree gnome-system-monitor showtime decibels snapshot PackageKit PackageKit-gstreamer-plugin PackageKit-command-not-found || true \ && dnf remove -y gnome-software gnome-software-rpm-ostree gnome-system-monitor showtime decibels snapshot PackageKit PackageKit-gstreamer-plugin PackageKit-command-not-found toolbox || true \
&& dnf clean all \ && dnf clean all \
&& rm -rf /var/cache/dnf && rm -rf /var/cache/dnf

115
README.md Normal file
View File

@@ -0,0 +1,115 @@
# My Fedora - Distribution Fedora Personnalisée
Distribution Fedora 43 personnalisée basée sur Fedora Bootc avec GNOME et un ensemble d'outils de développement préinstallés.
## Caractéristiques
### Environnement de Bureau
- **GNOME Desktop** avec support matériel complet
- Configuration des boutons de fenêtre style Windows (minimize, maximize, close)
- Plymouth pour l'animation de démarrage
- Support Vulkan et pilotes AMD
### Outils de Développement
- **Visual Studio Code** (depuis le dépôt officiel Microsoft)
- **Development Tools** complet
- **Podman** et **Buildah** pour la conteneurisation
- **Podman Compose** pour orchestration
- Support Docker via podman-docker
### Applications Préinstallées
- **Mullvad VPN** - Client VPN sécurisé
- **Yaak** (dernière version) - Client API REST
- **Filen** - Stockage cloud
- **Bazaar** (Flatpak) - Gestionnaire d'applications
- **CUPS** - Support d'impression (avec cups-pdf)
### Configuration Système
- **Locale** : Français (fr_FR.UTF-8)
- **Clavier** : AZERTY (fr)
- **Fuseau horaire** : Europe/Paris
- **Système de fichiers root** : Btrfs
- **Flatpak** : Flathub configuré par défaut
### Optimisations
- `user.max_user_namespaces` augmenté pour Podman
- Support FUSE pour overlayfs
- Mise à jour automatique Bootc désactivée
- GNOME Software supprimé (gestion via Flatpak)
## Prérequis
- Fedora avec Buildah et Podman installés
- Accès root pour la génération d'ISO
- Connexion Internet pour télécharger les dépendances
## Utilisation
### Construire l'image conteneur
```bash
./build.sh
```
Construit l'image localement avec le tag `localhost/tintounn/my-fedora:latest`
### Générer une ISO bootable
```bash
./build-iso.sh
```
Construit l'image puis génère une ISO Anaconda dans le répertoire `output/`. L'ISO utilise Btrfs comme système de fichiers root.
### Publier l'image sur Docker Hub
```bash
./push-image.sh
```
Pousse l'image vers `docker.io/tintounn/my-fedora:latest`
## Architecture
- **Base** : `registry.fedoraproject.org/fedora-bootc:42`
- **Type** : Image conteneur bootable (Bootc)
- **Target** : Système graphique (graphical.target)
## Services Activés
- GDM (GNOME Display Manager)
- NetworkManager
- Bluetooth
- Podman Socket
- CUPS (Impression)
## Intégration Continue
Le projet utilise **Woodpecker CI** avec déclenchement automatique :
- **Sur push** vers la branche `main`
- **Nuit** via un cron nommé "upgrade base image"
Le pipeline CI construit et publie automatiquement l'image sur Docker Hub.
## Structure du Projet
```
.
├── Containerfile # Définition de l'image
├── build.sh # Script de construction d'image
├── build-iso.sh # Script de génération d'ISO
├── push-image.sh # Script de publication
├── .woodpecker/
│ └── ci.yaml # Configuration Woodpecker CI
└── output/ # Répertoire de sortie pour les ISO (généré)
```
## Notes
- Les mises à jour automatiques Bootc sont masquées pour un contrôle manuel
- 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
## Licence
Projet personnel