-
-
Notifications
You must be signed in to change notification settings - Fork 1
Third Party Compose Tools
wslc has no native Compose support yet — tracked upstream in
microsoft/WSL#40948. Independent projects fill the
gap, and mode: compose bridges to whichever one you install.
| Project | Language |
|---|---|
| bacarndiaye/wslc-compose | Python |
| inuyume/wslc-compose | Go |
Others exist and more will appear — wslc is new and still evolving. This list is a starting
point, not an endorsement or an exhaustive survey.
compose.command has no default, unlike wslc.command, which defaults to auto and searches
a candidate list. That asymmetry is deliberate:
- The ecosystem is young and moving. Baking in a favorite would make wip's behavior depend on someone else's release cadence.
- Every implementation is treated equally.
compose.commandtakes a binary name or an absolute path — nothing about wip prefers one shape of tool. - Choosing a third-party dependency for your project isn't wip's call to make.
The same reasoning applies to sync.image: wip doesn't publish or default to an rsync image
either — see Sync Modes.
Whichever tool you point at must understand this subset of the Compose CLI vocabulary:
<command> -f FILE [-p PROJECT] up [-d]
<command> -f FILE [-p PROJECT] stop
<command> -f FILE [-p PROJECT] down
<command> -f FILE [-p PROJECT] exec [-T] SERVICE COMMAND...
<command> -f FILE [-p PROJECT] logs [-f] [SERVICE...]
That's all wip drives. Notably absent: run, which is why wip run falls back to exec under
this mode.
version: 1
mode: compose
compose:
service: app
command: wslc-compose # binary name on PATH, or an absolute path
file: compose.yml # optional
project: myapp # optionalwip doctor[OK] Found wslc-compose
[OK] compose command is available
[OK] Found compose file /home/me/app/compose.ymlIf the binary can't be resolved, wip says so and points you here:
compose command was not found.
Checked:
wslc-compose
wip doesn't bundle or pin a compose-for-wslc implementation — install one and set
compose.command in wip.yml to its binary name or path, e.g.:
https://github.com/bacarndiaye/wslc-compose
https://github.com/inuyume/wslc-compose
Often not. mode: compose-native reads the same compose.yml with no
external binary, and gives you a real wslc run --rm plus wip up --watch that mode: compose
can't. Reach for an external tool when your compose file needs features outside
the supported subset — health checks, scaling, long-syntax mounts,
extends.
Decision help: Reusing an Existing compose.yml.
Both compose modes exist because of the upstream gap. wip's stated intent is that wip.yml's shape
(mode:, compose:) stays stable for existing container / compose / compose-native setups,
so whatever happens once wslc catches up won't require rewriting your config.
Introduction
Modes
Configuration
- Configuration Reference
- Config File Discovery
- Dependencies
- Networking
- Interactions
- Restart Policies
- Env Files
- Secret Masking
- Dockerignore
- Shadow Build Context
- Source Sync
- Sync Modes
compose.yml support
- Compose File Support
- Compose Build
- Compose Depends On
- Compose Profiles
- Compose Variable Interpolation
Commands
- CLI Command Reference
- wip init
- wip version
- wip doctor
- wip config
- wip build
- wip up
- wip stop
- wip down
- wip exec
- wip run
- wip shell
- wip logs
- wip sync
- wip dispatch
- Global Options
- Debug Output
- TTY Allocation
Guides
- Guides
- Migrating from dip
- Reusing an Existing compose.yml
- Fixing a Slow Boot
- Continuous Sync
- Auto Restarting Containers
- Multi Arch Images
- Using wip in CI
Troubleshooting
- Troubleshooting & FAQ
- FAQ
- Configuration Errors
- WSLC Not Found
- Registry Authentication
- Architecture Mismatch
- Volume Limit Reached
- rsync Not Found
- Reporting Issues
Comparison
Project