Files
my-fedora/Containerfile
T
qpismont 83c97aa13a
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/cron/ci Pipeline failed
Add Noctalia/Umbriel stack with default config
2026-11-04 18:53:43 +01:00

140 lines
5.6 KiB
Docker

FROM registry.fedoraproject.org/fedora-bootc:45
#Install copr command
RUN dnf5 install 'dnf5-command(copr)' -y \
&& dnf copr enable yannmasoch/nautilus-my-computer -y
#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
#Ajout du dépot mullvad
RUN curl -fsSL https://repository.mullvad.net/rpm/stable/mullvad.repo -o /etc/yum.repos.d/mullvad.repo
#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 \
noctalia \
umbriel-nightly \
xdg-desktop-portal-umbriel-nightly \
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 \
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 \
&& (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 clean all
#Flatpak : installe seul, dans sa propre couche (comme avant le passage a GNOME), pour
#que le scriptlet de flatpak-selinux (qui enregistre le module SELinux) tourne dans une
#petite transaction isolee. Le store SELinux est d'abord recopie dans la couche courante :
#sur overlayfs, libsemanage renomme des repertoires de la couche d'origine, ce qui peut
#echouer ("Directory not empty") et faire annuler la transaction sans erreur bloquante.
RUN cp -a /etc/selinux/targeted /tmp/selinux-store \
&& rm -rf /etc/selinux/targeted \
&& mv /tmp/selinux-store /etc/selinux/targeted
RUN dnf install -y flatpak && dnf clean all
#Garde-fou : /usr est en lecture seule sur le systeme deploye, un helper flatpak mal
#etiquete (unlabeled_t) ne peut donc pas etre repare apres coup. On verifie que la
#politique COMPILEE connait bien le type, sinon le build echoue.
RUN grep -qa flatpak_helper_exec_t /etc/selinux/targeted/policy/policy.*
#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
#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
#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
RUN chmod 0644 /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