Utilities
Normalize a self-contained Compose file to JSON
compose-config is a normalization node for self-contained Compose files that returns canonical JSON.
overview
What compose-config does
Supply one UTF-8 Compose YAML or JSON file with image-based services. Docker Compose config returns its canonical model with project name trickest. Variables and relative paths remain literal because interpolation, environment resolution and path resolution are disabled.
The preflight rejects include, extends, env_file, label_file, file, build, develop, provider and credential_spec at every nesting level, including identically named environment/extension keys. YAML anchors, aliases, tags, duplicate or non-string keys and multiple documents are refused. Depth is capped at 40 and tokens at 100000. Typed fields may fail when they contain unresolved expressions.
Input or native processing failures fail the operation. The operation keeps the supplied source unchanged.
This operation uses 5.5.1. Upstream license: Apache-2.0. The source link identifies the program used by this node.
use cases
Where compose-config fits
Expand short configuration syntax
Inspect long-form ports and service settings in native canonical JSON.
Inspect a canonical service model
Review model consistency without creating containers.
Keep environment values unresolved
Keep literal variable expressions instead of importing ambient host values.
reference
compose-config inputs and flags
| Name | Type | Flag | Description |
|---|---|---|---|
| input | FILE | --input | Self-contained UTF-8 Compose YAML or JSON up to 1 MiB. Image-based services only; include, extends, env_file, file references, build, provider, develop, credential_spec, YAML anchors/tags and duplicate keys are rejected. Variables remain literal; project name is fixed to trickest. |
Showing key inputs. compose-config exposes 1 inputs in total.
example
Run compose-config
python3 /app/run.py --input ./input.txt ./output{
"name": "trickest",
"services": {
"web": {
"image": "nginx:1.27-alpine",
"environment": {
"GREETING": "${AMBIENT_SECRET}"
},
"ports": [
{
"target": 80,
"published": "8080",
"protocol": "tcp"
}
]
},
"cache": {
"image": "redis:7-alpine"
}
}
}guidance
Choosing compose-config
Use this node to inspect a self-contained Compose model. It does not check that images or mount paths exist, and it does not connect to a Docker daemon, build, pull or start services.
yq
Queries YAML; this node normalizes a restricted Compose model.
faq
compose-config questions
related
More Utilities tools
browser-fetch
Headless Chromium render: requested URL, final URL, status, and title next to the page.
cewl
Spider a URL and return a wordlist for password crackers.
csvkit
SQL on one CSV. The table name is the file stem.
dnsgen
Wordlist and mined-word subdomain permutation.
duckdb
In-process SQL on CSV, JSON, and Parquet. No server.
edge-tts
Microsoft Edge neural speech from text or a script file. No API key.
Run compose-config yourself
The synthetic run checks canonical compose json. The excerpt shows selected native fields asserted by saved passing platform verifier; reconstructed excerpt, not full raw artifact. The command shown is the container entrypoint with example paths, not a host-installed CLI command.
Facts on this page come from the live Trickest tool library.