# Particle OS - Debian Trixie Minimal Base Image # Phase 5.1: Real Desktop Environment Integration Testing FROM debian:trixie # Set environment variables ENV DEBIAN_FRONTEND=noninteractive # Install essential packages RUN apt-get update && apt-get install -y \ # Core system packages systemd \ systemd-sysv \ dbus \ sudo \ # Network management network-manager \ # 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 \ # System utilities nano \ vim-tiny \ curl \ wget \ htop \ less \ # Cleanup && apt-get clean \ && rm -rf /var/lib/apt/lists/* # Enable essential services RUN systemctl enable systemd-networkd \ && systemctl enable dbus # Create particle-os user RUN useradd -m -G sudo particle-os \ && echo 'particle-os:particle-os' | chpasswd \ && echo 'particle-os ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers # 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 Minimal)"' > /etc/os-release \ && echo 'NAME="Particle OS"' >> /etc/os-release \ && echo 'VERSION="1.0"' >> /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' > /etc/hostname # Configure bootc for immutable system RUN ln -sf /var/home /home # Ensure proper permissions RUN chmod 755 /etc/ostree \ && chmod 644 /etc/ostree/ostree.conf LABEL org.opencontainers.image.title="Particle OS Minimal" LABEL org.opencontainers.image.description="Debian Trixie based minimal Particle OS" LABEL org.opencontainers.image.vendor="Particle OS Project" LABEL org.opencontainers.image.version="1.0" LABEL org.particle-os.type="minimal" LABEL org.particle-os.desktop="none" LABEL com.debian.bootc="true" LABEL ostree.bootable="true"