Docker-verfassen und pdb
Ich sehe, dass ich nicht der erste, der die Frage zu stellen, aber es gab keine klare Antwort darauf:
Wie zu verwenden pdb-mit docker-Komponist in der Python Entwicklung?
Wenn Sie Fragen, Onkel Google über django docker
bekommen Sie genial-Andockfenster-Komponist Beispiele und tutorials und ich habe ein Umfeld zu arbeiten - ich kann laufen docker-compose up
und ich haben ein ordentliches Entwickler-Umgebung aber die PDB ist nicht die Arbeit (das ist sehr traurig).
Kann ich mich mit laufen docker-compose run my-awesome-app python app.py 0.0.0.0:8000
aber dann kann ich meine Anwendung über http://127.0.0.1:8000 vom host aus (ich kann mit docker-compose up
) und es scheint, dass jedes mal, wenn ich run
neuen Container sind aus wie: dir_app_13
und dir_db_4
denen ich keine Lust auf alle.
Menschen guten Willens bitte Hilfe mir.
PS
Ich bin mit pdb++ für dieses Beispiel und eine grundlegende docker-Komponieren.yml von dieses Beispiel django. Auch habe ich experimentiert, aber nichts scheint mir zu helfen. Und ich bin mit docker-Komponist 1.3.0rc3, wie es Dockerfile zeigen Unterstützung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie Ihren web-container mit der --service-ports-option:
docker-compose run --service-ports web
docker-compose run --rm --service-ports my-awesome-app python app.py 0.0.0.0:8000
. Goodbye Landstreicher!docker-compose up
für diese Funktion, wie schon unten.Make
Anleitung, aber es funktioniert nicht, es führt die richtige option, aber es zeigt mir diedocker-compose
Menü.Verwenden Sie die folgenden Schritte zum anfügen pdb auf jedem python-Skript.
Schritt 1. Fügen Sie Folgendes in der yml-Datei
Damit wird der interaktive Modus und Anhängen stdin. Dies entspricht für -es-Modus.
Schritt 2.
Wirst du jetzt bekommen Sie die pdb-shell
docker-compose up
, danke.docker ps
docker-compose up
. Wichtig ist zu bemerken, dass die Anweisung geöffnet werden würden jeder Zeit wieder in der zweiten shell-Registerkarte, wo Sie lief diedocker attach <generated_container_id>
Befehl.Till meine Erfahrung
docker-compose up
Befehl nicht zur Verfügung stellt eine interaktive shell, aber es beginnt der Druck STANDARDAUSGABE auf Standard-nur-Lesen-shell.Oder wenn Sie angegeben haben, und die zugeordneten Protokolle Verzeichnis
docker-compose up
Befehl druckt nichts auf dem angeschlossenen shell, aber es sendet die Ausgabe an den zugeordneten Protokollen. So befestigen Sie den Behälter separat, sobald es ausgeführt wird.wenn Sie
docker-compose up
ist, damit es in detached-Modus über-d
und verbinden die container überdocker exec -it your_container_name bash