Where to pull from
Both registries receive identical images on every release.
Image variants
Both variants support
linux/amd64 and linux/arm64.
Tags
Unsuffixed tags (
:latest, :3.4.2, :3.4, :3) always resolve to the Alpine variant. Append -debian for the Debian variant (e.g. usebruno/cli:3.4.2-debian).
Quick start
Pull the image and verify it works:docker pull downloads the image to your machine. docker run starts a container from that image — anything after the image name (usebruno/cli) is passed as arguments to bru, so --version prints the CLI version.
Run a collection
The Docker container needs access to your collection files to run them. Use the-v (volume mount) flag to map a directory on your host to /bruno inside the container. The path should always be mapped to /bruno — that’s the working directory the CLI expects.
Since the image’s entrypoint is already set to bru, running usebruno/cli run is the same as running bru run on your local machine. Any arguments you pass after the image name go straight to the CLI.
- Bash / Zsh / WSL
- PowerShell
- Windows CMD
Run a subfolder or single request
Choose an environment
Pass environment variables
Generate a report
For all
bru run options — environments, variables, reporters, tags, parallel execution, and more — see Run Command Options.Collection at a different path
If your collection is not in the current directory, point Docker at its path:Two usage patterns
Mount at runtime (no image build needed)
Best for local development and ad-hoc runs.Bake collection into a custom image
Best for CI pipelines and distributable test suites. Create aDockerfile next to your bruno.json:
The base image runs as
USER node (UID 1000) for security. Use --chown=node:node in COPY so the runtime user can write reports back to the mount.CI/CD examples
GitHub Actions
GitLab CI
Docker Compose
Image details
Troubleshooting
UID mismatch on Linux hosts
UID mismatch on Linux hosts
Files written by the container may appear owned by a foreign UID. Fix with:macOS Docker Desktop handles UID translation automatically.
SSL or glibc errors with Alpine
SSL or glibc errors with Alpine
The musl libc in Alpine can occasionally cause issues with native Node modules or SSL. Switch to the Debian variant:
Windows drive letter conflicts with -v
Windows drive letter conflicts with -v
The Or run inside WSL where POSIX paths work directly.
-v flag uses a colon separator that collides with Windows drive letters. Use --mount instead:Nested subfolders not running
Nested subfolders not running
Bruno CLI’s
run is non-recursive by default. If your collection has nested subfolders, add -r: