-
-
Notifications
You must be signed in to change notification settings - Fork 1
Getting Started
From nothing to your first wip up. If you already know which mode you want, jump straight to
Container Mode, Compose Native Mode, or
Compose Mode.
| Requirement | Why |
|---|---|
| Ruby 3.2+ |
wip is a Ruby gem (required_ruby_version >= 3.2) |
| WSL2 | WSLC containers run in a WSL2-backed VM |
| Microsoft WSLC |
wip shells out to wslc.exe / wslc for everything |
Confirm wslc itself is reachable before installing anything:
wslc.exe version || wslc versionwip looks for the binary in this order when wslc.command is left at auto:
-
wslc.exe(onPATH) -
wslc(onPATH) /mnt/c/Windows/System32/wslc.exe
If none of those exist, see WSLC Not Found.
gem install wslc-wipThe gem is named wslc-wip; the command it installs is wip.
From source, when you want to run an unreleased revision or hack on it:
git clone https://github.com/slidict/wip.git
cd wip
bundle install
bundle exec exe/wip versionCheck what you got:
wip versionThat prints wip's own version and then asks wslc for its version — see wip version.
cd my-project
wip initwip init looks for compose.yml / compose.yaml / docker-compose.yml / docker-compose.yaml
next to the file it's about to write:
-
found → writes
mode: compose-native, pointing at that file -
not found → writes
mode: container, with adependencies:skeleton
It refuses to overwrite an existing wip.yml unless you pass --force, and --template rails|node|rust|csharp picks a stack-appropriate default sync.exclude list. Full details:
wip init.
The generated file is deliberately full of comments and TODO: markers. At minimum you need to
fill in:
-
container mode —
dependencies.app.image(and renameapp/container:if you like) -
compose-native mode —
compose.service, so wip knows which service is "the app"
wip doctorEvery check prints [OK], [WARN], or [FAIL]. Warnings alone still exit 0; a WSL2, interop,
WSLC, config, or sync failure exits 1. See wip doctor for what each line means.
wip build # only if you have a build: / interaction.build definition
wip up -d
wip shellwip up creates the network (if network: is set), starts every sidecar, mirrors the source if
you configured Source Sync, then starts the primary container. See wip up.
Then run your project's own commands through the interactions you declared:
wip rails console
wip rspecThose come from the interaction: block — see Interactions.
| Question | Page |
|---|---|
| Which mode should I use? | Choosing a Mode |
What does every wip.yml key do? |
Configuration Reference |
| What commands exist? | CLI Command Reference |
| Boot feels unbearably slow | Fixing a Slow Boot |
I'm coming from dip
|
Migrating from dip |
| Something failed | Troubleshooting & FAQ |
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