Updated Oct 16, 2026

Utilities

Normalize a self-contained Compose file to JSON

compose-config is a normalization node for self-contained Compose files that returns canonical JSON.

Agent

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.

source github.com/docker/compose/tree/v5.5.1

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

1 inputs
NameTypeFlagDescription
inputFILE--inputSelf-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

compose-config · command
python3 /app/run.py --input ./input.txt ./output
sample 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

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.

Canonical Compose JSON. Native processing must succeed before an output artifact is returned.

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.

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.

The image repository also contains a digest-bound source/notices artifact. Download it with oras pull docker.io/nenadzaric/skills-intel-compose-config@sha256:c44216ad92dad37ef88d5b2a05582d1e3fa50a0a8ec0e9eb9ff3968713a730dc. The bundle includes the build recipe, licenses, copied notices and component-source directions. Bundle SHA256: a581cb10a88671c2e8f3e3b81edc9a6b8361f76f972cae282237912bee8f26a0. Follow its source directions for upstream archives and patches. Image and source/notices repository.

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.