Packages And Wheels
requirements.txt is a small pip requirements file installed inside the
container at startup.
Package entries must be exact pins such as agent-arbiter==0.8.0; unpinned
names and version ranges are rejected by docker.requirement=...,
arbiter-docker doctor, and service start/restart commands.
Default package target
By default, arbiter-server deploy docker init writes a pinned Agent Arbiter
meta package matching the arbiter-server command that generated the
deployment when that command comes from a publishable package version. Check the
command version with:
arbiter-server --version
The default file looks like:
agent-arbiter==0.8.0
That meta package installs the core package and the default plugin packages for the same release.
Explicit plugin pins
If you want explicit plugin control, seed the file with repeated
docker.requirement=... values:
arbiter-server deploy docker \
docker.requirement=agent-arbiter-core==0.8.0 \
docker.requirement=agent-arbiter-smtp==0.8.0 \
init
The requirements file is operator-owned deployment state. Agent Arbiter accepts initial pinned values from CLI input, but it does not auto-update core or plugin versions. Review version changes, edit the file deliberately, then restart or reinstall the service.
Networkless installs
For networkless installs, mount a wheelhouse at /wheels with a local Compose
override. When /wheels contains .whl files, the generated container command
uses pip install --no-index --find-links /wheels ..., so every required wheel
must already be present:
services:
agent-arbiter:
volumes:
- /opt/arbiter/wheels:/wheels:ro
The requirements file can keep pinned package names that resolve from the wheelhouse, or it can name wheels directly:
/wheels/agent_arbiter_core-0.8.0-py3-none-any.whl
/wheels/agent_arbiter_smtp-0.8.0-py3-none-any.whl
Local checkout testing
When run from a local checkout with a dev version such as 0.8.0.dev1, init
writes /source/agent-arbiter/... requirements and a local
compose.override.yaml that mounts the checkout read-only.
For local checkout testing, the only non-pinned entries allowed are absolute container paths:
/source/agent-arbiter/core
/source/agent-arbiter/smtp
Mount the checkout explicitly with a local Compose override when using
/source/agent-arbiter/... entries:
services:
agent-arbiter:
volumes:
- /home/example/agent-arbiter:/source/agent-arbiter:ro
At container startup, the deployment copies the mounted checkout to temporary storage, builds wheels from the referenced source paths, then installs those wheels.
Source checkout requirements are for testing. doctor --preinstall rejects
them for Linux install because they are not production install state. Switch to
pinned packages or /wheels/*.whl entries before running install, then
remove the /source/agent-arbiter mount from compose.override.yaml.