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

90 lines
2.5 KiB
Text

# 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"