Skip to content
NSNormandin SystemsTHE EVERYDAY TOOLBOXMain site
</>

Development / YOUR EVERYDAY TOOLBOX

Docker Compose Format Converter

Convert Docker Compose file between V1, 2.x, 3.x or CommonSpec and may expand ports/volumes syntaxes

✓ Free to use✓ No account neededHow to use this tool ↓
YOUR WORKSPACESee an example ↗

Opening your tool…

Runs in your browser. Check important results and keep a copy of your original files.

THE PRACTICAL GUIDE · NORMANDIN SYSTEMS

Get more from Docker Compose Format Converter

Docker Compose Format Converter rewrites a Compose document between supported historical versions and the Compose Specification style. It can also expand compact port or volume definitions into more explicit structures. Version conversion is a document transformation, not a guarantee that every source feature has an equivalent in the selected target or runtime. Configuration generators and converters reduce repetitive editing, but the destination runtime still determines which settings are valid. Keep the source configuration and review every generated section before use. Names, ports, paths, credentials, and version-specific options deserve particular attention. A successful conversion means a document was produced; it does not prove that the service will start or that the resulting deployment matches your requirements. Validate a draft in a development environment and keep a clear record of the settings you changed.

Guide updated October 13, 2026

How to use this tool

  1. Begin with a minimal configuration or example using placeholder credentials. Keep an unchanged source copy so you can compare individual settings.
  2. Paste a minimal Compose file, select the destination format and expansion options, and compare each service definition.
  3. Review the example below and compare its expected behavior with a small sample of your own input before continuing.
  4. Review the generated text and validate it with the intended runtime or configuration checker before using it in an existing deployment.

SEE IT IN PRACTICE

A worked example

EXAMPLE INPUT
A Compose service with ports: ["8080:80"] and port expansion enabled
RESULT / WHAT TO EXPECT
A long-form port mapping expressing published 8080 and target 80

The two forms describe the same basic port relationship, while long syntax makes individual fields easier to inspect.

Short and long syntax carry structure

A compact mapping such as 8080:80 hides several concepts in one string: the published host port and the target container port, and sometimes an address or protocol. Expanding a mapping makes those fields more explicit and can simplify review. Volume syntax has similar distinctions among source, target, and access mode. After conversion, compare each field rather than merely counting entries. Quotes are important where YAML might otherwise interpret a value in an unintended way, and environment interpolation can alter a seemingly fixed source value.

Version conversion has limits

Historical Compose versions and the evolving specification do not provide identical feature sets. Removing or changing a version marker is not sufficient evidence that an old runtime accepts the new document. Pay attention to service dependencies, deployment-related fields, resource controls, and platform-specific options. Run the target implementation's configuration validation on the generated file and inspect its effective result. If the converter omits a feature you depend on, keep that omission visible as a manual migration task instead of replacing the original configuration wholesale.

When this tool is useful

  • Modernize a legacy Compose document
  • Expand short port mappings for review
  • Compare historical and specification-based Compose structures

Tips for a better result

  • Compare services, ports, volumes, networks, environment variables, and restart behavior, then validate with the intended Compose implementation.
  • Check names and environment-specific values one by one. A syntactically valid setting can still reference the wrong host, expose an unintended port, or point to an absent local directory.
  • Keep the source and the settings used for this result together. That makes a later comparison or correction easier, especially when another person needs to reproduce the same outcome.

Frequently asked questions

Does changing a version guarantee runtime compatibility?

Older Compose versions and different runtimes support different keys. Review warnings and unsupported settings instead of assuming a version label alone creates compatibility.

Does this tool apply the configuration for me?

The workspace prepares or inspects configuration text. Creating the text is separate from applying it with your own runtime or deployment process. Review the output and use the appropriate validation command before changing a running service.

Why should I compare the source and generated versions?

Different formats do not always express the same concepts. Defaults, unsupported settings, and platform-specific features may require manual decisions. Comparing each original setting with the output helps reveal omissions before they cause a deployment problem.

What happens to the information I enter?

The utility processes your input in this browser. Some tools retain field values in browser storage or the URL; avoid entering secrets in shareable fields. Page and asset requests still go to the hosting provider. Read the privacy and offline-use notes for details.