# Particle-OS Desktop Containerfile # Builds on the minimal image and adds desktop environment # This creates the Phase 3 deliverable: Debian Aurora/Bazzite equivalent FROM particle-os:minimal # Install desktop environment (KDE Plasma) RUN apt-get update && apt-get install -y \ # Display manager sddm \ # KDE Plasma desktop task-kde-desktop \ # Additional desktop applications firefox-esr \ konsole \ dolphin \ kate \ # Multimedia support vlc \ # Office applications libreoffice \ # Additional utilities gparted \ # Desktop-specific OSTree packages ostree-grub2 \ && rm -rf /var/lib/apt/lists/* # Configure display manager RUN systemctl enable sddm # Set up user environment RUN mkdir -p /home/particle/.config && \ chown -R particle:particle /home/particle # Configure desktop environment RUN echo "export DESKTOP_SESSION=plasma" >> /home/particle/.profile && \ echo "export KDEWM=kwin" >> /home/particle/.profile # Update OSTree configuration for desktop variant RUN echo "OSTREE_OSVARIANT=desktop" >> /etc/ostree/ostree.conf && \ echo "OSTREE_SERVICES=sddm" >> /etc/ostree/ostree.conf && \ echo "OSTREE_DESKTOP=plasma" >> /etc/ostree/ostree.conf # Create desktop-specific OSTree deployment structure RUN mkdir -p /sysroot/ostree/deploy/particle-os/desktop/deploy && \ mkdir -p /sysroot/ostree/deploy/particle-os/desktop/var && \ mkdir -p /sysroot/ostree/deploy/particle-os/desktop/usr # Set up desktop-specific systemd services RUN systemctl enable sddm # Label the image with OSTree-compliant labels LABEL org.opencontainers.image.title="Particle-OS Desktop" LABEL org.opencontainers.image.description="Desktop-focused Debian immutable OS" LABEL org.opencontainers.image.version="0.1.0" LABEL org.opencontainers.image.vendor="Particle-OS Project" LABEL org.opencontainers.image.source="https://github.com/your-org/particle-os" LABEL org.opencontainers.image.revision="0.1.0" LABEL org.opencontainers.image.created="2024-01-01T00:00:00Z" LABEL org.opencontainers.image.licenses="MIT" LABEL org.opencontainers.image.ref.name="particle-os-desktop" LABEL org.opencontainers.image.ostree.osname="particle-os" LABEL org.opencontainers.image.ostree.osversion="0.1.0" LABEL org.opencontainers.image.ostree.osvariant="desktop" LABEL org.opencontainers.image.ostree.desktop="plasma" # Health check HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ CMD systemctl is-system-running && systemctl is-active sddm || exit 1 # Default command CMD ["/bin/bash"]