FROM registry.fedoraproject.org/fedora-bootc:44 #Install copr command RUN dnf5 install 'dnf5-command(copr)' -y \ && dnf copr enable yannmasoch/nautilus-my-computer -y #Ajout du dépot mullvad RUN curl -fsSL https://repository.mullvad.net/rpm/stable/mullvad.repo -o /etc/yum.repos.d/mullvad.repo #Ajout du dépot Terra (Umbriel n'est pas dans les depots Fedora) RUN dnf install -y --nogpgcheck --repofrompath 'terra,https://repos.fyralabs.com/terra$releasever' terra-release \ && dnf clean all #Install de GNOME + stack Noctalia/Umbriel avec support hardware + Podman + Cups + Vulkan driver + Plymouth + dev tools + divers utilitaires RUN dnf install -y --refresh --setopt=tsflags=nodocs \ @gnome-desktop \ @hardware-support \ @development-tools \ @multimedia \ vulkan-tools \ ffmpegthumbnailer \ mesa-vulkan-drivers \ nautilus-my-computer \ mesa-vulkan-drivers.i686 \ vulkan-loader \ vulkan-loader.i686 \ vulkan-tools \ glibc-langpack-fr \ langpacks-core-fr \ langpacks-fr \ distrobox \ buildah \ podman \ rsync \ podman-docker \ podman-compose \ fuse-overlayfs \ cups \ cups-pdf \ jq \ mullvad-vpn \ noctalia \ umbriel-nightly \ xdg-desktop-portal-umbriel-nightly \ plymouth \ plymouth-system-theme \ plymouth-plugin-label \ plymouth-plugin-fade-throbber \ wget \ kernel-modules \ kernel-modules-extra \ SDL2 \ evtest \ libusb \ usbutils \ gstreamer1 \ gstreamer1-plugins-base \ gstreamer1-vaapi \ ffmpeg \ flatpak \ && (dnf remove -y alacritty waybar gnome-software gnome-software-rpm-ostree gnome-system-monitor showtime decibels snapshot PackageKit PackageKit-gstreamer-plugin PackageKit-command-not-found toolbox || true) \ && dnf install -y flatpak \ && dnf clean all #Configuration de GDM : clavier FR (GNOME Initial Setup cree le premier compte au boot) COPY config/xorg-keyboard.conf /etc/X11/xorg.conf.d/00-keyboard.conf #Installation de Filen Desktop RUN wget https://cdn.filen.io/@filen/desktop/release/latest/Filen_linux_x86_64.rpm -O /tmp/filen.rpm \ && dnf install -y --setopt=tsflags=nodocs /tmp/filen.rpm \ && dnf clean all \ && rm -f /tmp/filen.rpm #Reconstruit la politique SELinux compilee depuis le store de modules (sans charger #dans le noyau) : sans ca, les modules installes par les paquets (ex: flatpak -> #flatpak_helper_exec_t) peuvent manquer et laisser des binaires en "unlabeled_t". #Le sandbox de transaction peut rester d'un semodule precedent (scriptlet rpm) et #faire echouer la transaction avec "File exists". RUN rm -rf /etc/selinux/targeted/tmp && semodule -n -B #Installation de starship RUN curl -sS https://starship.rs/install.sh | sh -s -- -y #Installation des polices FiraMono Nerd Font RUN mkdir -p /usr/share/fonts/firamono-nerd && \ cd /usr/share/fonts/firamono-nerd && \ wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.4.0/FiraMono.zip && \ unzip FiraMono.zip && \ rm FiraMono.zip && \ fc-cache -fv #Configuration de starship pour tous les utilisateurs RUN echo 'eval "$(starship init bash)"' >> /etc/bashrc #Configuration par défaut de starship pour tous les utilisateurs RUN mkdir -p /etc/skel/.config && \ starship preset nerd-font-symbols -o /etc/skel/.config/starship.toml #Configuration Umbriel par défaut : config de départ du paquet + autostart Noctalia COPY config/umbriel.toml /etc/xdg/umbriel/config.toml #Langue FR par défaut + Fuse userns + Timezone Paris RUN echo "LANG=fr_FR.UTF-8" > /etc/locale.conf \ && echo "KEYMAP=fr" > /etc/vconsole.conf \ && ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime \ && echo "user.max_user_namespaces=28633" > /etc/sysctl.d/userns.conf # Installation du pack d'icones MoreWaita RUN git clone https://github.com/somepaulo/MoreWaita.git && cd MoreWaita && ./install.sh && \ rm -rf MoreWaita && \ printf "[org/gnome/desktop/interface]\nicon-theme='MoreWaita'\n" > /etc/dconf/db/local.d/02-icon-theme && \ dconf update 2>/dev/null || true #Configuration des fenêtres gnome pour avoir les btns style windows RUN mkdir -p /etc/dconf/db/local.d /etc/dconf/profile && \ printf "[org/gnome/desktop/wm/preferences]\nbutton-layout=':minimize,maximize,close'\n" > /etc/dconf/db/local.d/02-window-buttons && \ printf "user-db:user\nsystem-db:local\n" > /etc/dconf/profile/user && \ dconf update 2>/dev/null || true #Activation du module xpad pour support manette xbox RUN echo "xpad" > /etc/modules-load.d/xpad.conf #Le depot flathub est ajoute au premier demarrage (voir flatpak-first-boot.service) : #ecrire dans /var pendant le build est un anti-patron bootc (mauvais labels SELinux). #Activation du service flatpak-first-boot (active apres preset-all, plus bas) COPY services/flatpak-first-boot.service /etc/systemd/system/flatpak-first-boot.service #Définir le target graphique par défaut RUN systemctl set-default graphical.target #Activation des services + Desactivation de bootc-update automatique RUN systemctl preset-all && \ systemctl enable --force gdm.service NetworkManager.service bluetooth.service podman.socket cups.service mullvad-daemon.service flatpak-first-boot.service && \ systemctl mask bootc-fetch-apply-updates.timer systemd-remount-fs.service