Bianpai (编排, biānpái, ㄅㄧㄢ ㄆㄞˊ, meaning "compose" in Chinese) is a Docker Compose-style tool designed to support multiple container backends.
- WSLC
- Apple container for macOS
- Docker
- nerdctl
Select a backend with --backend. The default is platform-aware: wslc on Windows, container on macOS, and no default on other platforms (specify --backend explicitly):
bianpai --backend container upThe Apple container backend supports host-published services and basic lifecycle operations, but it does not support Compose service-name DNS by default, so multi-service projects that need service names to resolve are rejected with a clear limitation message. Compose keys the backend cannot honor are reported as warnings rather than applied. See docs/ROADMAP.md for the full limitation analysis and the staged plan.
The wslc backend drives the WSLC CLI that ships with WSL and is the default
backend on Windows. Unlike the Apple container backend it supports the full
Compose networking model: service-name DNS, network aliases, and hostname:
all work, so DNS-dependent multi-service stacks run as-is. Bind mounts accept
Windows paths and named volumes are supported. As with other backends,
restart: and privileged: map to warnings.
- Compose file discovery and loading
- Project, container, network, and volume naming
- Basic service startup and teardown with
upanddown -
ps,logs,build,pull, andexeccommands - Basic image, build, command, environment, port, volume, network, label, and resource option mapping
- Full Docker Compose specification compatibility
- Foreground attach mode for
up - Healthcheck waiting and conditional
depends_on - Profiles, deploy, secrets, configs, and watch support
make check # build + test + vet + gofmt (pre-commit gate)
make validate # check + go mod verify (pre-PR gate)
make quality # race detector + shellcheck + golangci-lint
make coverage # report Go statement coverage by package
make test-loop COUNT=20 # rerun the suite 20x to shake out flakes
make smoke # drive up/down/ps over every usecase with a fake backend
make smoke-real # run Apple container real checks (host-published pass + DNS-limit rejection)
make smoke-wslc # run real wslc checks on Windows (all stacks, including service DNS)make smoke drives all user-facing subcommands with a stub container CLI;
make smoke-real and make smoke-wslc run the same stacks against the real
Apple container and wslc CLIs. See usecases/README.md
for the stack corpus.