diff options
| author | 2026-09-24 10:25:38 +0000 | |
|---|---|---|
| committer | 2026-09-24 10:25:38 +0000 | |
| commit | d09bdcd6b9fd6d815d6272a7bc337b410b19b665 (patch) | |
| tree | c2598b5ed6d702425f32db8dcd3cbeecae510440 /openspec/specs/container-runtime | |
| parent | a1678f084e757c5464d167a937ac06460d9529df (diff) | |
| download | desktop-flake-d09bdcd6b9fd6d815d6272a7bc337b410b19b665.tar.gz desktop-flake-d09bdcd6b9fd6d815d6272a7bc337b410b19b665.tar.bz2 desktop-flake-d09bdcd6b9fd6d815d6272a7bc337b410b19b665.zip | |
Add uv and a rootless Docker runtime on NixOS hosts
uv joins the CLI package list. Docker's daemon is now actually managed
on NixOS hosts too, in rootless mode (per-user systemd service, no
docker-group root-equivalent access), rather than leaving the runtime
entirely externally-managed as before -- the already-installed docker
CLI picks it up automatically via DOCKER_HOST. This is a documented,
narrow exception to developer-environment's client-only tools policy;
kubectl and awscli2 remain unaffected.
Archives add-uv-and-docker-runtime and syncs the new container-runtime
capability plus the narrowed developer-environment requirement into
the main specs.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HngxrvqEzq8oBEBDtrYJyB
Diffstat (limited to 'openspec/specs/container-runtime')
| -rw-r--r-- | openspec/specs/container-runtime/spec.md | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/openspec/specs/container-runtime/spec.md b/openspec/specs/container-runtime/spec.md new file mode 100644 index 0000000..0b07f92 --- /dev/null +++ b/openspec/specs/container-runtime/spec.md | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | # container-runtime Specification | ||
| 2 | |||
| 3 | ## Purpose | ||
| 4 | |||
| 5 | Provides a working, unprivileged Docker container runtime on every NixOS host built from this flake, so the already-provisioned Docker CLI tooling has a daemon to talk to without a separately-managed installation step. | ||
| 6 | |||
| 7 | ## Requirements | ||
| 8 | |||
| 9 | ### Requirement: A rootless Docker daemon runs on every NixOS host | ||
| 10 | Every NixOS host built from this flake's shared system module SHALL run a Docker daemon in rootless mode (as the user's own account, not as root), without requiring per-host opt-in. | ||
| 11 | |||
| 12 | #### Scenario: Daemon available after boot | ||
| 13 | - **WHEN** a NixOS host built from this flake's shared system module finishes booting and the user logs in | ||
| 14 | - **THEN** a Docker daemon is running under that user's own account, not as root | ||
| 15 | |||
| 16 | ### Requirement: The Docker CLI connects to the rootless daemon without manual configuration | ||
| 17 | A user on a NixOS host built from this flake's shared system module SHALL be able to run Docker CLI commands (e.g. `docker run`, `docker build`) against the rootless daemon without manually setting `DOCKER_HOST` or other connection configuration. | ||
| 18 | |||
| 19 | #### Scenario: Docker command works out of the box | ||
| 20 | - **WHEN** a user runs a `docker` CLI command on a NixOS host built from this flake's shared system module | ||
| 21 | - **THEN** the command reaches the rootless daemon and executes, without the user having exported `DOCKER_HOST` or written any Docker connection config themselves | ||
