Refresh release docs for Docker Hub environments

This commit is contained in:
Thales Maciel 2026-03-09 18:56:33 -03:00
parent 6988d85f7d
commit 7ccab61a1b
6 changed files with 44 additions and 7 deletions

View file

@ -42,8 +42,9 @@ Current official environments in the shipped catalog:
- `debian:12-build`
The package ships the embedded Firecracker runtime and a package-controlled environment catalog.
Official environments are pulled as OCI artifacts from Docker Hub into a local cache on first use or
through `pyro env pull`.
Official environments are pulled as OCI artifacts from public Docker Hub repositories into a local
cache on first use or through `pyro env pull`.
End users do not need registry credentials to pull or run official environments.
## CLI
@ -198,13 +199,16 @@ Official environment publication is automated through
For a local publish against Docker Hub:
```bash
export DOCKERHUB_USERNAME='your-dockerhub-username'
export DOCKERHUB_TOKEN='your-dockerhub-token'
make runtime-materialize
OCI_REGISTRY_USERNAME="$DOCKERHUB_USERNAME" OCI_REGISTRY_PASSWORD="$DOCKERHUB_TOKEN" \
make runtime-publish-official-environments-oci
make runtime-publish-official-environments-oci
```
`make runtime-publish-environment-oci` auto-exports the OCI layout for the selected
environment if it is missing.
The publisher accepts either `DOCKERHUB_USERNAME` and `DOCKERHUB_TOKEN` or
`OCI_REGISTRY_USERNAME` and `OCI_REGISTRY_PASSWORD`.
Docker Hub uploads are chunked by default for large rootfs layers; if you need to tune a slow
link, use `PYRO_OCI_UPLOAD_TIMEOUT_SECONDS`, `PYRO_OCI_UPLOAD_CHUNK_SIZE_BYTES`, and
`PYRO_OCI_REQUEST_TIMEOUT_SECONDS`.

View file

@ -7,6 +7,7 @@
- KVM available at `/dev/kvm`
- support for Firecracker microVMs
- sufficient disk for the embedded runtime files and cached OCI environment images
- outbound HTTPS access to `registry-1.docker.io` for first-run installs or `pyro env pull`
## Required For Guest Networking

View file

@ -4,6 +4,7 @@
- Linux x86_64 host
- Python 3.12+
- `uv`
- `/dev/kvm`
If you want outbound guest networking:
@ -20,6 +21,12 @@ Run the MCP server directly from the package without a manual install:
uvx --from pyro-mcp pyro mcp serve
```
Prefetch the default official environment:
```bash
uvx --from pyro-mcp pyro env pull debian:12
```
Run one command in a curated environment:
```bash
@ -38,6 +45,7 @@ uvx --from pyro-mcp pyro env list
uv tool install pyro-mcp
pyro --version
pyro env list
pyro env pull debian:12
pyro env inspect debian:12
pyro doctor
```

View file

@ -45,9 +45,27 @@ Primary facade:
- `Pyro`
Supported public methods:
Supported public entrypoints:
- `create_server()`
- `Pyro.create_server()`
- `Pyro.list_environments()`
- `Pyro.pull_environment(environment)`
- `Pyro.inspect_environment(environment)`
- `Pyro.prune_environments()`
- `Pyro.create_vm(...)`
- `Pyro.start_vm(vm_id)`
- `Pyro.exec_vm(vm_id, *, command, timeout_seconds=30)`
- `Pyro.stop_vm(vm_id)`
- `Pyro.delete_vm(vm_id)`
- `Pyro.status_vm(vm_id)`
- `Pyro.network_info_vm(vm_id)`
- `Pyro.reap_expired()`
- `Pyro.run_in_vm(...)`
Stable public method names:
- `create_server()`
- `list_environments()`
- `pull_environment(environment)`
- `inspect_environment(environment)`

View file

@ -7,6 +7,7 @@ Cause:
- the environment cache directory is not writable
- the configured registry artifact is unavailable
- the environment download was interrupted
- the host cannot reach `registry-1.docker.io`
Fix:
@ -16,6 +17,9 @@ pyro env prune
pyro env pull debian:12
```
If you are validating a freshly published official environment, also verify that the corresponding
Docker Hub repository is public.
## `pyro run --network` fails before the guest starts
Cause:

View file

@ -17,14 +17,16 @@ Materialization workflow:
Official environment publication workflow:
1. `make runtime-materialize`
2. `OCI_REGISTRY_USERNAME=... OCI_REGISTRY_PASSWORD=... make runtime-publish-official-environments-oci`
2. `DOCKERHUB_USERNAME=... DOCKERHUB_TOKEN=... make runtime-publish-official-environments-oci`
3. or run the repo workflow at `.github/workflows/publish-environments.yml` with Docker Hub credentials
4. if your uplink is slow, tune publishing with `PYRO_OCI_UPLOAD_TIMEOUT_SECONDS`, `PYRO_OCI_UPLOAD_CHUNK_SIZE_BYTES`, and `PYRO_OCI_REQUEST_TIMEOUT_SECONDS`
Official end-user pulls are anonymous; registry credentials are only required for publishing.
Build requirements for the real path:
- `docker`
- outbound network access to GitHub and Debian snapshot mirrors
- enough disk for a kernel build plus 2G ext4 images per profile
- enough disk for a kernel build plus 2G ext4 images per source profile
Kernel build note:
- the kernel builder now defaults to conservative parallelism to avoid compiler crashes on memory-constrained hosts