Start a project

Tool 143 of 194 · Architecture

Docker Compose Visualiser & Linter

See how the services in a compose file fit together, and catch the mistakes that stop docker compose up before you run it.

Docker Compose Visualiser & Linter

Compose file

Services and dependencies

Arrows point from a service to what it depends on: solid when it waits for a healthy service, dashed when it only waits for it to start. Links, network_mode: service and volumes_from count as dependencies, as in Compose.

    Services

    ServiceImage or buildPorts (host→container)Depends onNetworksVolumesHealthcheck

    Resources

    Networks, volumes and secrets

    Variable interpolation, the Compose Specification schema and the model checks follow docker compose config. They were checked against the docker compose binary on every file in docker/awesome-compose and over 500 variations.

    01

    What it does

    Draws the services in a compose file and what they depend on, checks it the way docker compose config does, and flags port clashes, cycles and risky settings.

    • Validates against the official Compose Specification schema, as docker compose does
    • Variable interpolation with ${VAR:-default}, ${VAR:?error} and the rest, using your .env values
    • Errors for undefined services, networks, volumes, secrets and configs, and dependency cycles
    • Dependencies from depends_on, links, network_mode: service and volumes_from, drawn as a graph

    02

    Private by design

    Everything happens in your browser. Nothing you type, paste or upload is sent anywhere, and it keeps working offline once the page has loaded.

    03

    What you get

    A dependency graph, errors and warnings with line numbers, a services table and resources, with a Copy and a Download button on every result.

    • Docker Compose
    • Containers
    • YAML

    Why it matters

    A compose file grows one service at a time, and the mistakes show up when you run it: two services on the same host port, a service waiting on a healthcheck that doesn't exist, a typo in a volume name or a dependency loop. Reading the YAML doesn't show how the pieces connect.

    This tool reads the file the way docker compose config does: it interpolates variables, validates against the Compose Specification schema and builds the model, including the dependencies Compose adds for links, network_mode and volumes_from. Then it draws the services and their dependencies and lints for the problems that break docker compose up or weaken security, each with its line number.

    How to use it

    1. Paste your compose.yaml, or choose the file.
    2. Add any variables from your .env file.
    3. Fix the errors first, then read the warnings.
    4. Use the graph and table to check how services connect.

    FAQ

    Does it give the same errors as docker compose?

    For the checks it covers, yes: schema validation, interpolation, undefined resources, cycles, invalid ports and the network_mode and container_name rules. They were checked against the docker compose binary on the awesome-compose examples and hundreds of variations.

    Why is a port clash only a warning?

    docker compose config accepts it, but docker compose up fails when the second container tries to bind a host port the first already has. The tool flags it so you can fix it first.

    What does service_healthy need?

    The service it waits for must define a healthcheck. Without one, docker compose up fails with “container has no healthcheck configured”.

    Is my compose file uploaded?

    No. It's parsed and checked in your browser.

    Credits and licences

    Parses YAML with yaml 2.9.1 (ISC License, Eemeli Aro) and validates with the Compose Specification JSON Schema (Apache License 2.0).

    Work with me

    Want a site that gets these right?

    I build fast, accessible websites and web apps that pass these checks from day one. Tell me about your project and I'll reply personally with honest next steps.

    All developer tools · Back to leej.uk