Aufgabenpfad / von der Eingabe zum Ergebnis
So wandelst du einen docker-run-Befehl in Compose um
- 01
Füge den docker-run-Befehl ein
Für literale POSIX-Shell-Befehle, die auf Linux-Container zielen. Maximal 64 KiB UTF-8. Rohe env-Dateien erfordern Compose 2.30+. Dies ist ein Konfigurationsentwurf; es wird keine Shell, kein Docker-Daemon und kein Image ausgeführt oder inspiziert. Nutze einen einzigen literalen docker-run-Befehl. Ersetze Host-Variablen durch explizite Werte; quote literale $ in einfachen Anführungszeichen oder escape sie. Shell-Expansion, Pipes, Redirects, Befehlssubstitution und nicht escapte Zeilenumbrüche werden nicht unterstützt. Backslash-Zeilenfortsetzung wird unterstützt.
- 02
Wandle in einen Compose-Service um
Wandelt Name, Ports, explizite Umgebungswerte, rohe env-Dateien, Mounts, Restart, Network, Workdir, User, Entrypoint und Labels um. -i/-t (einschließlich -it) werden zu stdin_open/tty. Kurze Optionen akzeptieren angehängte Werte und lange Optionen akzeptieren =value. Unbekannte Optionen stoppen die Umwandlung.
- 03
Prüfe das generierte YAML
Argumente nach dem Image behalten ihre Reihenfolge und leere Strings in der Befehlsliste. Ein nicht leerer Entrypoint bleibt ein Argument; ein leerer Entrypoint löscht ihn. Literale Dollarzeichen werden für Compose verdoppelt, was ihren Wert bewahrt, statt die Host-Umgebung zu interpolieren. Das Default-Netzwerk ist explizit bridge. Bind-Mounts bewahren den Unterschied zwischen -v (darf ein Host-Verzeichnis anlegen) und --mount (muss existieren).
- 04
Prüfe die Liste nicht unterstützter Optionen
Eine Option wird nicht unterstützt. Es wurde kein Teil-YAML generiert. Nutze die im Guide gelisteten unterstützten Optionen; verschiebe Container-Befehlsargumente hinter das Image. --rm ist in YAML nicht darstellbar. Wähle den passenden Compose-Run-/Removal-Lebenszyklus selbst. -d/--detach ist eine Startoption: Nutze docker compose up -d, wo angemessen.
- 05
Kopiere oder lade das YAML herunter
env_file nutzt das Raw-Format (Compose 2.30+), um Dollarzeichen und Quotes zu bewahren. Relative Pfade lösen neben compose.yaml auf. Dateiinhalte und ungesetzte Variablen werden nicht inspiziert; prüfe die tatsächliche Umgebung. Benannte Volumes und eigene Netzwerke sind externe Referenzen mit ihren ursprünglichen Namen. Sie müssen vor dem Start bereits existieren; hier werden keine Ressourcen angelegt oder geprüft.