yams/packaging/systemd/debian-lane.Dockerfile
trvon c1483e4478
ci(packaging): make the user-unit checks match real sessions
First runs of the user-unit validation on all four lanes found harness
gaps, fixed here:

- Arch's `su -` does not run pam_systemd, so the login shell had no
  XDG_RUNTIME_DIR and the CLI looked for /tmp/yams-daemon-<uid>.sock;
  the checks now provide the runtime dir a real login session gets and
  report whether su set it.
- Ubuntu 24.04's systemctl --user needs the user D-Bus bus: the
  Debian/Ubuntu lane image gains dbus-user-session (standard on real
  installs) and the checks pass the bus address when present.
- CLI commands fall back to an in-process daemon instead of spawning
  one, so the lifecycle check uses `yams daemon start` (which starts the
  unit) rather than expecting an ordinary command to start it.
- `yams init`'s default embedder is the built-in simeon backend, which
  skips the onnx model provider by design. The onnx phase now checks
  that init's config autoloads plugins, then switches [embeddings]
  backend to onnxruntime to prove the bundled runtime loads (from the
  user journal), and restores init's config so the later phases run the
  user's real configuration.

docs/install.md no longer claims ordinary CLI commands start the unit:
`yams daemon start` and on-demand starters do.

Signed-off-by: trvon <me@trevon.dev>
2026-10-02 09:18:38 -06:00

26 lines
623 B
Docker

# Debian/Ubuntu systemd-in-Docker substrate for scripts/local-ci/package-validate.sh.
# BASE_IMAGE selects the distro (debian:trixie-slim, ubuntu:24.04, ...).
ARG BASE_IMAGE=debian:trixie-slim
FROM ${BASE_IMAGE}
ARG DEBIAN_FRONTEND=noninteractive
ENV container=docker
RUN set -eux; \
apt-get update && apt-get install -y --no-install-recommends \
systemd \
systemd-sysv \
dbus \
procps \
psmisc \
iproute2 \
binutils \
passwd \
dbus-user-session \
libpam-systemd \
util-linux \
ca-certificates && \
rm -rf /var/lib/apt/lists/*
STOPSIGNAL SIGRTMIN+3
CMD ["/sbin/init"]