Skip to content

Repository files navigation

bianpai

logo

Bianpai (编排, biānpái, ㄅㄧㄢ ㄆㄞˊ, meaning "compose" in Chinese) is a Docker Compose-style tool designed to support multiple container backends.

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 up

The 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.

WSLC backend (Windows)

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.

Features

  • Compose file discovery and loading
  • Project, container, network, and volume naming
  • Basic service startup and teardown with up and down
  • ps, logs, build, pull, and exec commands
  • 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

Development

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.

About

Docker Compose-style tool designed to support multiple container backends

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages