Fix critical PATH issues and add related projects to README

- Fixed sfdisk PATH issue in Containerfile.base (sfdisk is in /usr/sbin)
- Updated Containerfile.minimal to use full path for grub-install
- Enhanced test-bootc-deployment.sh to properly check utility locations
- Added comprehensive section about related projects (apt-ostree, deb-bootupd, debian-bootc-corrected)
- Updated validation script to handle Debian-specific utility locations
- Improved error messages with specific solutions for PATH and utility issues

This addresses the critical requirements from scope.md regarding disk utilities
and PATH environment variables for bootc deployment.
This commit is contained in:
robojerk 2025-08-10 18:15:04 -07:00
parent 04c7fd1e4c
commit f9fb8d3bd0
149 changed files with 1625 additions and 9188 deletions

78
Containerfile.server Normal file
View file

@ -0,0 +1,78 @@
# Particle-OS Server Containerfile
# Builds on the minimal image and adds server-specific packages
# This creates the Phase 2 deliverable: Debian CoreOS equivalent
FROM particle-os:minimal
# Install server-specific packages
RUN apt-get update && apt-get install -y \
# SSH server
openssh-server \
# Web-based management
cockpit \
cockpit-system \
cockpit-networkmanager \
# Network utilities
iptables \
ufw \
# Monitoring tools
htop \
iotop \
# Additional server utilities
rsync \
screen \
tmux \
# Server-specific OSTree packages
ostree-grub2 \
&& rm -rf /var/lib/apt/lists/*
# Configure SSH
RUN mkdir -p /var/run/sshd && \
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config && \
echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config
# Configure Cockpit
RUN systemctl enable cockpit.socket && \
systemctl enable ssh
# Set up firewall
RUN ufw --force enable && \
ufw allow ssh && \
ufw allow 9090/tcp # Cockpit
# Update OSTree configuration for server variant
RUN echo "OSTREE_OSVARIANT=server" >> /etc/ostree/ostree.conf && \
echo "OSTREE_SERVICES=ssh,cockpit" >> /etc/ostree/ostree.conf
# Create server-specific OSTree deployment structure
RUN mkdir -p /sysroot/ostree/deploy/particle-os/server/deploy && \
mkdir -p /sysroot/ostree/deploy/particle-os/server/var && \
mkdir -p /sysroot/ostree/deploy/particle-os/server/usr
# Set up server-specific systemd services
RUN systemctl enable ssh && \
systemctl enable cockpit.socket
# Label the image with OSTree-compliant labels
LABEL org.opencontainers.image.title="Particle-OS Server"
LABEL org.opencontainers.image.description="Server-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-server"
LABEL org.opencontainers.image.ostree.osname="particle-os"
LABEL org.opencontainers.image.ostree.osversion="0.1.0"
LABEL org.opencontainers.image.ostree.osvariant="server"
# Expose ports
EXPOSE 22 9090
# Health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
CMD systemctl is-system-running && systemctl is-active ssh && systemctl is-active cockpit.socket || exit 1
# Default command
CMD ["/bin/bash"]