Docker-Compose-YAML prüfen

Fügen Sie eine Compose-Datei ein, um Dienstübersicht und Befunde eines lokalen Struktur-Linters zu sehen. Das YAML wird im Browser geparst: nichts wird hochgeladen, kein Docker-Daemon kontaktiert und Compose nie ausgeführt.

Läuft lokal in deinem Browser
Compose-YAML

Fügen Sie compose.yaml oder docker-compose.yml ein. Analyse und Prüfungen laufen lokal im Browser.

Dies ist ein lokaler Struktur-Linter. Er lädt keine Images, untersucht nicht den Docker-Daemon, löst keine Umgebungsvariablen auf und führt Compose nicht aus.

Befunde
  • Validieren Sie eine Compose-Datei, um die lokalen Prüfungen zu sehen.
Dienstübersicht
DienstImage / BuildPortsHängt ab von
Noch keine Compose-Datei validiert.

So prüfen Sie eine Compose-Datei, bevor Sie docker compose up ausführen

Fügen Sie eine compose.yaml oder docker-compose.yml ein und drücken Sie Compose-Datei validieren. Die Seite parst das Dokument im Browser und zeigt zwei Ergebnisse: die nach Schweregrad sortierte Befundliste mit dem Pfad des betroffenen Schlüssels (etwa services.db.ports[0]) und eine Dienstübersicht mit Image- oder Build-Quelle, veröffentlichten Ports und den depends_on-Zielen jedes Dienstes.

Das eingebaute Beispiel (api und db mit je einem benannten Volume) endet als „bereit zur Prüfung“, weil nichts ein docker compose up blockiert. Ein Host-Port, den zwei Dienste belegen, ein depends_on auf einen nicht existierenden Dienst oder ein Zyklus wie a → b → a werden dagegen als Fehler gemeldet.

  1. Fügen Sie die Compose-Datei links ein. Es wird ein einzelnes YAML-Dokument gelesen; das entsprechende JSON ist ebenfalls zulässig, Anker, Aliase und Merge-Keys werden unterstützt.
  2. Drücken Sie Compose-Datei validieren — oder Beispiel laden für die Vorlage mit zwei Diensten, und Leeren, um beide Bereiche vor der nächsten Datei zu räumen.
  3. Lesen Sie zuerst die Befunde: Jede Zeile trägt einen Schweregrad, den Pfad in der Datei und einen Satz zur Erklärung. Fehler verhindern einen normalen Compose-Lauf, Warnungen sollten geprüft werden, Info-Hinweise sind optional.
  4. Prüfen Sie die Dienstübersicht auf das aufgelöste Image oder die Build-Quelle, die veröffentlichten Ports und die depends_on-Liste jedes Dienstes — auch bei Diensten, die ihr Image nur über einen Merge-Key erben.
  5. Korrigieren Sie die Datei, validieren Sie erneut und lesen Sie die Zusammenfassung: „bereit zur Prüfung“ heißt, dass die implementierten Prüfungen keinen strukturellen Fehler gefunden haben.

Was der Compose-Linter prüft und was er nicht liest

Was die Prüfungen abdecken

Struktur: services muss ein Mapping mit mindestens einem Dienst sein, jeder Dienst ein Objekt, und Namen dürfen nur Buchstaben, Zahlen, Punkte, Unterstriche und Bindestriche enthalten — alles andere lehnt Compose ab. image muss eine nicht leere Zeichenkette sein, build ein Pfad oder Objekt; ein Dienst ohne beides wird gemeldet, weil er nicht laufen kann.

Ports: Container-Ziele müssen zwischen 1 und 65535 liegen, ein veröffentlichter Host-Port darf eine einzelne Zahl oder ein Bereich wie 8000-8005 sein. Der Linter meldet Werte außerhalb des Bereichs, nicht numerische Host-Ports, Protokolle außer tcp, udp und sctp sowie jeden doppelten oder überlappenden Host-Port — ob zweimal im selben Dienst oder in zwei verschiedenen. network_mode: host zusammen mit veröffentlichten Ports erzeugt eine Warnung, weil diese Zuordnungen zur Laufzeit ignoriert werden.

Abhängigkeiten, Volumes und Merge-Keys

depends_on darf eine Liste oder ein Mapping sein; jedes Ziel muss existieren und der Graph muss zyklenfrei sein, deshalb werden a → b → a oder ein Dienst, der von sich selbst abhängt, mit dem vollständigen Zyklus gemeldet. container_name und privileged: true erscheinen als Warnungen, weil sie das Skalieren erschweren oder den Host-Zugriff weiter öffnen als nötig.

Benannte Volumes, die ein Dienst einbindet, müssen im volumes-Mapping oberster Ebene deklariert sein. Der lokale Parser löst Anker und Aliase auf, und <<: *common wird in den Dienst gemergt, wenn es auf ein Mapping zeigt — ein Image, das nur über den Merge-Key kommt, steht also trotzdem in der Übersicht; lässt sich der Merge nicht auflösen, sagt die Zeile das, statt ein fehlendes Image zu behaupten.

Was der Linter nicht tut

Es wird nichts ausgeführt: Die Seite startet nie docker compose, kontaktiert keinen Docker-Daemon und lädt keine Images. Variablen wie ${POSTGRES_PASSWORD} werden nicht aufgelöst, .env-Dateien nicht gelesen und profiles oder extends nur als Struktur geprüft. Versionsunterschiede von Compose werden nicht simuliert, prüfen Sie die endgültige Datei also mit der Version, mit der Sie ausrollen.

Das Dokument wird in Ihrem Browser geparst: Der eingefügte Text wird nicht hochgeladen und die Validierung funktioniert auch offline. Sehr große Dateien sind durch den Speicher Ihres Geräts begrenzt, und es wird jeweils ein einzelnes Dokument gelesen — eine Datei mit einem zweiten --- Dokument wird mit Zeilennummer abgelehnt.

Zuletzt verwendet: