deb-bootc-image-builder/containerfiles/Containerfile.debian-trixie-kde
2025-08-11 08:59:41 -07:00

127 lines
3.7 KiB
Text

# Particle OS - Debian Trixie with KDE Plasma Desktop
# Phase 5.1: Real Desktop Environment Integration Testing
FROM debian:trixie
# Set environment variables
ENV DEBIAN_FRONTEND=noninteractive
# Install essential packages first
RUN apt-get update && apt-get install -y \
# Core system packages
systemd \
systemd-sysv \
dbus \
sudo \
# Network management
network-manager \
network-manager-gnome \
# Package management
apt-utils \
ca-certificates \
gnupg \
# OSTree and bootc requirements
ostree \
# Kernel and boot
linux-image-amd64 \
linux-headers-amd64 \
initramfs-tools \
# Bootloader
grub-efi-amd64 \
grub-efi-amd64-bin \
efibootmgr \
# Filesystem utilities
util-linux \
parted \
e2fsprogs \
dosfstools \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Install KDE Plasma Desktop Environment
RUN apt-get update && apt-get install -y \
# KDE Desktop Environment
task-kde-desktop \
kde-plasma-desktop \
plasma-workspace \
# Display Manager
sddm \
# Essential KDE Applications
dolphin \
konsole \
kate \
firefox-esr \
# Audio support
pulseaudio \
pavucontrol \
# Graphics support
mesa-utils \
# System utilities
nano \
vim \
curl \
wget \
htop \
less \
# Cleanup
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Enable essential services
RUN systemctl enable systemd-networkd \
&& systemctl enable systemd-resolved \
&& systemctl enable dbus \
&& systemctl enable sddm \
&& systemctl enable NetworkManager
# Create particle-os user with desktop access
RUN useradd -m -G sudo,audio,video,plugdev particle-os \
&& echo 'particle-os:particle-os' | chpasswd \
&& echo 'particle-os ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
# Configure SDDM for auto-login (testing purposes)
RUN mkdir -p /etc/sddm.conf.d \
&& echo '[Autologin]' > /etc/sddm.conf.d/autologin.conf \
&& echo 'User=particle-os' >> /etc/sddm.conf.d/autologin.conf \
&& echo 'Session=plasma.desktop' >> /etc/sddm.conf.d/autologin.conf
# Set up OSTree configuration for bootc
RUN mkdir -p /etc/ostree \
&& echo '[core]' > /etc/ostree/ostree.conf \
&& echo 'mode=bare-user-only' >> /etc/ostree/ostree.conf
# Configure system identification
RUN echo 'PRETTY_NAME="Particle OS (Debian Trixie KDE)"' > /etc/os-release \
&& echo 'NAME="Particle OS"' >> /etc/os-release \
&& echo 'VERSION="1.0-kde"' >> /etc/os-release \
&& echo 'ID=particle-os' >> /etc/os-release \
&& echo 'ID_LIKE=debian' >> /etc/os-release \
&& echo 'VERSION_ID="1.0"' >> /etc/os-release \
&& echo 'HOME_URL="https://particle-os.org"' >> /etc/os-release \
&& echo 'SUPPORT_URL="https://particle-os.org/support"' >> /etc/os-release \
&& echo 'BUG_REPORT_URL="https://particle-os.org/bugs"' >> /etc/os-release
# Set hostname
RUN echo 'particle-os-kde' > /etc/hostname
# Configure bootc for immutable system
RUN ln -sf /var/home /home
# Set up default KDE configuration
RUN mkdir -p /etc/skel/.config/kdeglobals \
&& mkdir -p /etc/skel/.config/plasma-org.kde.plasma.desktop-appletsrc
# Ensure proper permissions
RUN chmod 755 /etc/ostree \
&& chmod 644 /etc/ostree/ostree.conf \
&& chmod 755 /etc/sddm.conf.d \
&& chmod 644 /etc/sddm.conf.d/autologin.conf
LABEL org.opencontainers.image.title="Particle OS KDE"
LABEL org.opencontainers.image.description="Debian Trixie based Particle OS with KDE Plasma"
LABEL org.opencontainers.image.vendor="Particle OS Project"
LABEL org.opencontainers.image.version="1.0-kde"
LABEL org.particle-os.type="desktop"
LABEL org.particle-os.desktop="kde-plasma"
LABEL com.debian.bootc="true"
LABEL ostree.bootable="true"