-
-
Notifications
You must be signed in to change notification settings - Fork 1
wip config
Prints the effective configuration as YAML: every default filled in, every derived value resolved, every secret-looking value masked.
wip config
This is the fastest way to answer "what did wip actually make of my wip.yml?" — especially under
compose-native mode, where most of the config comes from compose.yml.
$ wip config
---
version: 1
wslc:
command: auto
mode: container
container: app
network: app-tier
dependencies:
app:
image: slidict/slidict:development
workdir: /app
interactive: false
remove: true
env:
RAILS_ENV: development
ports:
- '3000:3000'
volumes:
- .:/app
redis:
image: redis:latest
compose:
sync:
source: "/home/me/my-project"
target: "/app"
mount: "/host-src"
volume: app-src
delete: true
exclude:
- ".git"
- tmp/
command: rsync
options: []
interval: 2
mode: exec
image:
build:
commands:
rspec:
image: slidict/slidict:development
workdir: /app
type: exec
command: bundle exec rspec| Defaults |
mode, wslc.command, every dependencies: entry key, every sync: key |
| Derived values |
sync.source / target / volume, compose-native's container and network
|
| Interaction inheritance | each entry merged on top of the primary container's values |
| compose.yml | under compose-native, services rendered as dependencies: entries in dependency order |
Interpolated ${VAR} |
post-substitution values — see Compose Variable Interpolation |
Two normalizations worth noting:
-
interaction:is always printed ascommands:, whichever spelling you wrote. They're aliases for one feature — see Interactions. -
Every
envvalue is a string.PORT: 3000in your file appears asPORT: '3000'.
Any key matching token, password, secret, credential, or auth (case-insensitive,
substring) has its value replaced:
env:
MYSQL_ROOT_PASSWORD: "[REDACTED]"The match is on key names only, so a secret hidden inside a value (DATABASE_URL,
API_KEY) is printed in full. Read the output before pasting it anywhere — see
Secret Masking.
Debug a config that "isn't taking effect":
wip config | grep -A5 'sync:'Check what compose-native made of your compose file:
wip configIf a service is missing, it's probably profile-gated. If a value looks empty,
a ${VAR} didn't resolve.
Diff two setups:
wip config > /tmp/mine.yml
# on the machine where it works
wip config > /tmp/theirs.yml
diff /tmp/mine.yml /tmp/theirs.ymlConfirm .env is being picked up — note that .env values are merged in at command-build
time, not shown in wip config's env: maps. To verify those, use --debug and read the -e
flags (masked as KEY=***), or run wip exec env.
wip config loads and validates the config, so it fails exactly where every other command would:
$ wip config
container: must be set when dependencies: has entriesSee Configuration Errors.
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