Docker Compose Studio

Convert docker run commands to compose.yaml, or compose.yaml back to docker run. A compose file is checked for syntax, the Compose Specification and common mistakes, and security points worth confirming are listed. Nothing is started or pulled, and your input never leaves your device.

On-device・No uploadMobile friendlyWorks offlineBeta

Your files and input are processed only inside your browser on this device and are never uploaded to our servers.

It does not start containers, pull images or scan for vulnerabilities. Findings are points to confirm, not verdicts.

Input (compose.yaml / docker-compose.yml)
0 chars0 lines
Formatted compose.yaml
Type on the left and the result appears here. Try a sample.

Type on the left and the result appears here. Try a sample.

How to use

  1. docker run …

    Paste a docker run command

  2. compose.yaml
    Dependency diagram (SVG)

    Convert to compose.yaml

  3. docker run (bash etc.)

    Convert back to docker run

Convert a docker run command to compose.yaml, and back again if needed
  1. Pick the direction at the top. “Validate & format” checks a compose.yaml; “docker run → compose” and “compose → docker run” convert.

  2. Paste commands or a compose.yaml into the input pane, or click “Open file”. The sample button lets you try the screen.

  3. The “Result” view shows the converted (or formatted) code. “Findings” lists errors, points to confirm and notes with line numbers, and “Dependency graph” shows start order and depends_on.

  4. Turn on “Hide secret-looking values in the output” before sharing. When formatting you can choose the indent, key order, port quoting and removal of version:.

  5. Copy the result or download it. The graph can be saved as SVG.

What it does

docker run → compose

Converts several commands at once (multi-line, with \ or ` continuations) into services. About 90 options are handled, including -p, -v, --mount, -e, --env-file, --name, --restart, --network, -w, -u, --entrypoint, --health-*, --cap-add, --privileged, --gpus and -it; options it cannot convert are listed. $(pwd) becomes ./.

compose → docker run

Generates one docker run per service (bash and PowerShell), ordered by depends_on. Items that docker run cannot express (build, deploy replicas…) are listed.

Validated with the official schema

Checks against the Compose Specification JSON Schema (bundled, version pinned) and reports unknown keys, wrong types and missing required keys with line and column. YAML syntax errors and duplicate keys come with positions too.

Common mistakes

Finds the obsolete version:, unquoted ports like 22:22, references to undefined networks, volumes and services, depends_on cycles, service_healthy without a healthcheck, malformed ${VAR:-default} interpolation and duplicate host ports.

Security points to confirm

Lists privileged, a /var/run/docker.sock mount, network_mode: host, cap_add ALL / SYS_ADMIN, ports open on 0.0.0.0 (with a 127.0.0.1 suggestion), passwords and tokens in environment (values are hidden), the latest tag and running as root. It does not give verdicts.

Formatting and dependency graph

Orders keys conventionally and unifies indentation and port quoting (comments are kept). Service dependencies are drawn as an SVG laid out by start order, and as text. No external library is used.

Use cases

  • Rewrite a docker run example from a README as a compose.yaml
  • Find why a compose.yaml does not work (indentation, key typos, undefined networks or volumes)
  • Check a compose.yaml before publishing for privileged, docker.sock mounts or ports open on 0.0.0.0
  • Bring the version: line and port syntax of a docker-compose.yml up to date
  • See depends_on relations and start order as a graph

Supported formats

Input

docker run commands (bash, PowerShell, cmd)compose.yamldocker-compose.yml.yaml.yml.txt

Output

compose.yamldocker run (bash / PowerShell)SVG (dependency graph)

Capability matrix

FeatureSupportNotes
Convert docker run to composeSupportedSeveral commands and multi-line input; unsupported options are listed
Convert compose to docker runPartialItems docker run lacks (build, depends_on, deploy replicas, secrets…) are not converted and are listed
Validate YAML syntax and the Compose SpecificationSupportedWith line and column; files referenced by include or extends are not read
Security points to confirmPartialOnly points out what is written; it is not a guarantee of safety
Formatting, key reordering, dependency graphSupportedKeys are not reordered when anchors (&) or aliases (*) are present
Starting containers or checking they runNot supportedNothing is started. Use docker compose config or docker compose up to confirm
Pulling images or scanning for vulnerabilitiesNot supportedImage contents and vulnerabilities are not examined. No network access
Shell expansion ($(...), variable values)Not supportedCommand substitution other than $(pwd) is not run; variables stay as Compose interpolation
Offline useSupportedWorks without a connection once loaded

Limits & notes

  • Input is limited to 500,000 characters.
  • Up to 200 services and 200 YAML alias expansions.
  • Up to 300 findings are shown, and up to 40 schema findings.
  • Processing is stopped after 20 seconds.
  • docker run is read line by line and everything after a pipe, ; or && is ignored. Multiple YAML documents (---) are not supported.
  • The schema is the Compose Specification (compose-spec/compose-spec, as of 2026-09-11). Some Docker Compose versions accept different items.

Privacy & safety

Pasted compose files, docker run commands and loaded files are processed only inside your browser. Nothing is sent to or stored on any server. Password and token detection also runs on your device, and only masked values are shown.

FAQ

How do I convert docker run to docker-compose.yml (compose.yaml)?
Choose “docker run → compose” and paste the docker run commands. -p becomes ports, -v volumes, -e environment and so on, and several commands become several services. Options that could not be converted are listed under “Findings”.
Can I validate a docker compose file?
Paste it into “Validate & format”. It checks YAML syntax, the Compose Specification JSON Schema, references to undefined networks and volumes, depends_on cycles and more, with line numbers. It does not run anything, so use docker compose config for a final check.
Do I need version: in a compose file?
No. Current Docker Compose ignores version: (and may warn about it). The tool lists it as a note, and “Remove version:” deletes it when formatting.
Why quote ports like "80:80"?
YAML can read digits:digits such as 22:22 as a base-60 number, which gives an unintended value when the container port is below 60. A string avoids it, so the tool flags unquoted ports and quotes them when formatting.
Do the security findings mean something is wrong?
No. privileged, a docker.sock mount or ports on 0.0.0.0 are sometimes needed. They are listed as points worth confirming, not as a verdict. Password-like values are shown masked.
Is my compose file sent to a server?
No. Conversion, validation and the graph all run in your browser; your input is never sent to LIBRA Works or any third party.

YAML / TOML Studio — Validate, Format & Convert

Paste YAML, TOML or JSON to validate, format or convert it. Errors show the exact line and column, and type traps such as “no becomes false” and anything lost in conversion are flagged up front. Your data never leaves your device.

No uploadBeta

Secret Scanner

Paste text or drop config and code files to list likely secrets with file, line and rule before you publish or share them. Values are masked by default and you can save a copy with them replaced by ***. A helper only — it cannot guarantee that nothing is missed.

No upload

curl Converter

Paste “Copy as cURL” from Chrome or Firefox to see the method, URL, headers, cookies and body in tables, then convert to 12 kinds of code. The request is never sent and everything runs in your browser. Authorization and cookies can be hidden before you share.

No uploadBeta

Mermaid Studio

Write Mermaid code on the left and the diagram appears on the right. Start from a flowchart, sequence, class or ER template and save SVG or PNG with the scale and background you choose. Rendering happens in your browser; your code is never sent.

No uploadBeta

Dockerfile Studio

Paste a Dockerfile to check its syntax, stages and common mistakes. Secret-looking values and points to confirm, such as curl | sh, are listed with line numbers. You can also format it or generate starter files for Node.js, Python, Go, a static site or Java. Nothing is built, and your input never leaves your device.

No uploadBeta

nginx Config Studio

Build a reverse proxy, SPA, PHP-FPM or HTTP-to-HTTPS redirect config from a form, or paste your nginx.conf to list syntax errors and easy-to-miss points. Everything runs in your browser and nginx is never executed.

No uploadBeta

Last updated: