docs(docker): finish the ARM64 Compose guidance (#1987)

@yangfan-yf-yf pushed two more commits to #1987 after the first pass landed.
Two things in them were worth taking:

  - an explicit `compose pull` step, so the platform override is proven before
    `up -d` rather than discovered when the pull inside it fails; and
  - a PowerShell form. An ARM64 Windows host cannot use `export`, and the
    surrounding page only ever shows Bash — so the guidance did not actually
    reach the users most likely to need it.

Not taken: the same commits also moved `--platform linux/amd64` into the
default `docker pull` / `docker run` quick start. That is a no-op for the
amd64 majority and contradicts the Architecture section directly above, which
introduces the flag as the conditional ARM64 step. The canonical command stays
the one almost everyone should run.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017ypcgSsh5j2PEonSJiAU1S
This commit is contained in:
Palash Debnath
2026-09-09 23:41:44 -07:00
co-authored by Claude Opus 5
parent 5e4f863c4d
commit 78a6c489c9
+18 -5
View File
@@ -258,17 +258,30 @@ docker compose -f deploy/docker-compose.yml --profile rocm up -d
> **ARM64 hosts:** Compose has no per-command `--platform` flag, so the
> override that works for `docker pull` and `docker run` does not reach it.
> Export `DOCKER_DEFAULT_PLATFORM=linux/amd64` for the shell you run Compose
> from, or the image resolves to the ARM64 manifest that does not exist and
> fails with `no matching manifest for linux/arm64/v8`:
> Set `DOCKER_DEFAULT_PLATFORM=linux/amd64` in the shell you run Compose from,
> or the image resolves to the ARM64 manifest that does not exist and fails
> with `no matching manifest for linux/arm64/v8`. Only the CPU profile makes
> sense under emulation — it is not a GPU workaround.
>
> ```bash
> export DOCKER_DEFAULT_PLATFORM=linux/amd64
> docker compose -f deploy/docker-compose.yml --profile cpu pull
> docker compose -f deploy/docker-compose.yml --profile cpu up -d
> ```
>
> Same caveat as above — this is emulation, not native ARM64 support, and only
> the CPU profile makes sense under it.
> In PowerShell, set both the administrator key and the platform for the
> session before running the same two commands:
>
> ```powershell
> $env:OMNIVOICE_API_KEY = python -c "import secrets; print(secrets.token_urlsafe(32))"
> $env:DOCKER_DEFAULT_PLATFORM = 'linux/amd64'
> docker compose -f deploy/docker-compose.yml --profile cpu pull
> docker compose -f deploy/docker-compose.yml --profile cpu up -d
> ```
>
> Either way the setting lives only in that shell and the processes it starts.
> The [architecture limits](#architecture) still apply: this is emulated CPU
> inference, not native ARM64 support.
The `docker-compose.yml` shipped in `deploy/` defaults to `127.0.0.1:3900`
on the host. The backend inside the container binds to `0.0.0.0` so the