novolis-os / podman.md
Podman
Minimal Debian runtime images
dotnetlinuxdebianruntimenovolis
Build and run the same single profile as an OCI container for console checks (no DRM/Wayland in Podman).
For Avalonia / Raylib GUI, use the QEMU appliance instead — see vm.md. Containers do not provide a DRM/Wayland seat the way a VM display does.
Build + smoke
pwsh -File d:\novolis\novolis-os\scripts\Build-PodmanImage.ps1This:
- Verifies package allowlists
- Builds the rootfs (privileged
ubuntu:24.04+mmdebstrap) unless-SkipRootfsBuild - Publishes
smokes/HelloNovolisOsand packs it intolocalhost/novolis-os:latest - Runs the app once (
--once) and checks forapp=HelloNovolisOs/status=running
pwsh -File d:\novolis\novolis-os\scripts\Build-PodmanImage.ps1 -SkipRootfsBuildRun the application
# Smoke: start HelloNovolisOs, print banner, exit
pwsh -File d:\novolis\novolis-os\scripts\Run-Podman.ps1
# Stay running (Ctrl+C to stop)
pwsh -File d:\novolis\novolis-os\scripts\Run-Podman.ps1 -Stay
# Same without the helper
podman run --rm localhost/novolis-os:latest --once
podman run --rm -it localhost/novolis-os:latestShell / override entrypoint:
pwsh -File d:\novolis\novolis-os\scripts\Run-Podman.ps1 -Interactive -Command /bin/dashBind-mount another published app (overrides entrypoint):
podman run --rm --entrypoint /usr/bin/dotnet -v d:/apps/MyApp:/app:ro localhost/novolis-os:latest /app/MyApp.dllUI apps need a host Wayland/X11 socket (WSLg, etc.).
Containerfile-only
When artifacts/novolis-os-rootfs.tar.zst already exists:
podman build -t localhost/novolis-os:latest -f d:\novolis\novolis-os\Containerfile d:\novolis\novolis-os
podman run --rm localhost/novolis-os:latest --once