weft-docker
Docker runner plugin for Weft.
This extension adds the docker runner via the weft.runners entry-point
group. It supports one-shot command TaskSpecs and the Docker-backed
one-shot provider CLI agent lane documented in Weft's agent runtime spec.
Security note. Weft assumes user-level trust (see
docs/specifications/00-Overview_and_Architecture.md).
spec.runner.options.docker_args is a passthrough to docker run: managed flags
(--memory, --network, --volume, …) are validated against collisions, but
escape-hatch flags such as --privileged, --cap-add, --security-opt,
--pid=host, and -v /:/host are not blocked. A task author who can set
docker_args can therefore weaken or defeat the container isolation; treat
docker_args as equivalent to local docker run access, not as a sandbox
boundary.
Current host support:
- Linux: supported
- macOS: supported
- Windows: not currently supported
Container Profiles
Command tasks can select a project-local Docker container profile through
spec.runner.options.container_profile. Profiles are useful when the Weft
manager runs on the host but the task must run inside a Docker network where
service names such as db, redis, or internal-api resolve.
TaskSpec shape:
{
"spec": {
"type": "command",
"process_target": "python3",
"args": ["-m", "my_project.probe"],
"runner": {
"name": "docker",
"options": {
"container_profile": "ops"
}
}
}
}
By default, profiles are loaded from .weft/docker-profiles.toml. A task can
override that with spec.runner.options.container_profile_file.
version = 1
# Optional. Relative values are resolved from this file's directory.
root = ".."
[profiles.ops]
image = "ghcr.io/example/project:latest"
network = "project_ops"
mount_workdir = false
container_workdir = "/app/project"
env_from_host = ["OPTIONAL_TOKEN"]
required_env_from_host = ["REQUIRED_TOKEN"]
[profiles.ops.env]
SERVICE_URL = "https://internal-api:8443"
[[profiles.ops.mounts]]
source = "config"
target = "/app/project/config"
read_only = true
Profile values are defaults. Explicit TaskSpec spec.runner.options and
spec.env win over profile values. env_from_host forwards named host
environment variables when present. required_env_from_host requires the
merged task environment to contain the named value, either from host env,
profile env, or explicit TaskSpec env.
Relative profile mount and build paths resolve against
container_profile_root, then top-level TOML root, then the profile file's
directory. Runtime checks for named Docker networks and profile-sourced mount
or build paths run only during explicit preflight validation.
Container profiles currently apply to command tasks only. Docker-backed agent
tasks continue to use provider-specific image recipes, container runtime
descriptors, and work_item_mounts.
Release tag:
weft_docker/vX.Y.Z
Metadata
Release files for weft-docker 0.9.94
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| weft_docker-0.9.94.tar.gz | 24.3 kB | Without provenance | Details for weft_docker-0.9.94.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| weft_docker-0.9.94-py3-none-any.whl | Python 3 | none | any | Details for weft_docker-0.9.94-py3-none-any.whl |
Total release size: 54.0 kB
Release files / weft_docker-0.9.94.tar.gz
| Download URL | weft_docker-0.9.94.tar.gz |
|---|---|
| Size | 24.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d8eccab4259f76d312379530400ec8e59a132adeb7220ae21eb8317c0d6497a9
|
|
BLAKE2b-256 checksum How to use checksums |
e1189712dd8ebfc1c5493c251568ea1ad5b6f90b989fa59b7718ea855799746d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / weft_docker-0.9.94-py3-none-any.whl
| Download URL | weft_docker-0.9.94-py3-none-any.whl |
|---|---|
| Size | 29.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7a6a7fc74d2032fd9b25323e93d43e0339d7f46467b3a01174d38ef0504138ac
|
|
BLAKE2b-256 checksum How to use checksums |
2ab17217a61411397ab7199f079a84ad99b08ccbbb6b3c53522793ea2ef44a59
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for weft-docker 0.9.94
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.