127 lines
3.7 KiB
Text
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"
|