Enhance Containerfile: Add distrobox for improved container management and update removal of toolbox for a leaner installation
This commit is contained in:
@@ -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
115
README.md
Normal 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
|
||||||
Reference in New Issue
Block a user