Zum Inhalt springen

Dein erstes Projekt

Der Quickstart bringt dich schnell zum Laufen. Diese Seite führt dieselben Befehle aus, erklärt aber, was jeder einzelne tut, damit du die Mechanik verstehst, bevor du dich darauf verlässt.

  1. Registriere das Projekt — und beobachte die Profil-Erkennung.

    mdocker init
    mdocker init ~/Projects/aurora

    init liest die Compose-Datei des Projekts und führt eine Profil-Heuristik (engine/detect.sh) aus, die sich Image- und Service-Namen ansieht, um ein Template zu wählen — zum Beispiel shopware-dockware, strapi-next, api-web-postgres oder das generic-Fallback. Danach erzeugt es ~/.config/multi-docker/overrides/<name>.override.yml und hält das Projekt in registry.json fest.

    Du kannst die Vermutungen überschreiben:

    expliziter Name, Profil und Host
    mdocker init ~/Projects/aurora \
    --name aurora \
    --profile generic \
    --host aurora.coding9.test

    Siehe Projekte registrieren & erkennen für die vollständige Menge an Optionen.

  2. Starte das Projekt — und verstehe den Port-Preflight.

    mdocker up
    mdocker up aurora

    Vor dem Start führt up einen Port-Konflikt-Preflight aus. Wenn ein Host-Port, den dein Projekt veröffentlichen würde, bereits von einem fremden Prozess belegt ist, findet MultiDocker einen freien Ersatz, persistiert ihn unter port_overrides in der Registry und schreibt eine <name>.ports.yml. Danach rendert es die COMPOSE_FILE-Kette und ruft docker compose up -d auf. Die Container treten dem multi-docker-edge-Netz bei und Traefik beginnt sofort zu routen.

  3. Öffne es — vertrauenswürdiges HTTPS, keine Warnungen.

    mdocker open
    mdocker open aurora

    Der Hostname löst auf, weil dnsmasq *.coding9.test mit 127.0.0.1 beantwortet und der macOS-Resolver diese Domain dorthin weiterleitet. Das mkcert-Wildcard-Zertifikat macht die TLS-Verbindung vertrauenswürdig, sodass der Browser ein Schloss statt einer Sicherheitswarnung zeigt.

  4. Inspiziere, was läuft.

    mdocker inspect
    mdocker inspect aurora

    inspect listet Container, Ports und Environment jedes Services auf, plus einen fertigen Connection-String zum Kopieren (mysql://, postgres://, …). Ergänze --json fürs Scripting.