DEV Community

castellanovargasdavid-beep
castellanovargasdavid-beep

Posted on

Solución de errores "Puerto ya asignado" y YAML en Docker Compose (100% en el navegador)

Every developer who deploys local containers or manages a homelab has run into this error at some point:

Error response from daemon: ports are not available: exposing port TCP 0.0.0.0:5432 -> 0.0.0.0:0: listen tcp 0.0.0.0:5432: bind: address already in use

Enter fullscreen mode Exit fullscreen mode

You install a new service, merge two docker-compose.yml snippets from a tutorial, or try running an isolated PostgreSQL instance alongside your main development environment—and suddenly your whole stack refuses to boot because two services compete for the exact same host port.

Most linters flag schema syntax errors, but few point out host-level port collisions or offer an automated fix without requiring terminal plugins.

To fix this friction, I built Doctor Compose: a lightweight, client-side tool to validate and auto-repair Compose configurations.


What it analyzes

Paste your raw Compose YAML into the browser, and the validator immediately runs these checks:

  • Host Port Collisions: Scans host mappings across all declared services. If two containers bind to 5432:5432, it catches the conflict and gives you a one-click button to increment the host port (e.g., 5433:5432).
  • Insecure Defaults: Flags default credentials commonly left in boilerplate templates (admin, password, root) and generates cryptographically secure alternatives on the fly.
  • Deprecated Directives: Cleans up legacy keys like top-level version: '3.8', which Compose v2 treats as obsolete and causes annoying CLI warnings.
  • Exposed Port Surface: Displays an immediate breakdown of all exposed host ports, helping you prevent accidental public exposure.

100% Client-Side: Zero Backend, Complete Privacy

A Compose file often contains architectural layouts, private service names, internal network definitions, and environment variables. Sending that configuration to a third-party server API is an obvious security and privacy risk.

Doctor Compose runs entirely inside your browser:

  • Parsing, linting, and patching happen locally using client-side JavaScript.
  • Not a single line of your configuration ever leaves your machine.
  • No accounts, sign-ups, or remote APIs required.

Try the tool and verified stacks

You can test your own Compose configurations here:

👉 Doctor Compose: In-Browser Docker Compose Linter & Auto-Fixer (Sustituye por la URL exacta de la herramienta)

This tool is part of AltFreeStack, a curated directory where I document over 120+ battle-tested open-source self-hosted stacks, organized with direct deployment configs and resource requirements.


What rule should I add next?

I am actively expanding the automated validation engine. Next on the roadmap:

  • Missing named volumes declared under the top-level volumes: key.
  • Trailing slash inconsistencies in path mappings.
  • Circular service dependencies inside depends_on.

What is the most frustrating Docker Compose misconfiguration or error you run into regularly? Let me know in the comments below!

Top comments (1)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.