2015-06-15 27 views
20

vedo che non sono il primo a porre la domanda, ma non c'era risposta chiara a questa:Docker-composizione e PDB

Come utilizzare PDB con finestra mobile-compositore di sviluppo Python?

Quando si chiede zio Google su django docker ottenere impressionanti esempi finestra mobile-compositore e tutorial e ho un ambiente di lavoro - posso correre docker-compose up e ho un ambiente di sviluppo pulito ma il progetto preliminare di bilancio non funziona (che è molto triste).

posso risolvere con l'esecuzione docker-compose run my-awesome-app python app.py 0.0.0.0:8000 ma poi posso accedere al mio applicazione su http://127.0.0.1:8000 dall'host (che posso con docker-compose up) e sembra che ogni volta che uso run nuovi contenitori sono realizzati come: dir_app_13 e dir_db_4 che I don' il desiderio di tutto

Le persone di buona volontà vi prego di aiutarmi.

PS
Sto usando pdb ++ per quell'esempio e un docker-compose.yml di base da this django example. Ho anche sperimentato, ma nulla sembra aiutarmi. E sto usando il docker-compositore 1.3.0rc3 perché ha il supporto di puntamento Dockerfile.

risposta

19

provare ad eseguire il vostro contenitore web con l'opzione --service-porte: docker-compose run --service-ports web

+0

Che lo ha fatto! Grazie gentile signore. Ora sto usando docker-compose per creare il mio ambiente ed eseguire il mio servizio oi suoi test con 'docker-compose run --rm --service-ports my-awesome-app python app.py 0.0.0.0: 8000'. Addio Vagante! – McAbra

+0

Sto riscontrando qualche problema con questo metodo. Il mio terminale è vuoto quando sto digitando qualcosa in pdb – Jitu

+0

Si arriva al prompt pdb, però? Non so come aiutare senza ulteriori informazioni, come quale framework stai usando, quali servizi, ecc. – Jamey

27

utilizzare le seguenti operazioni per collegare PPB su qualsiasi script python.

Fase 1. Aggiungere il seguente nel file yml

stdin_open: true 
tty: true 

Ciò consentirà modalità interattiva e attribuirà stdin. Questo è equivalente per la modalità -it.

Fase 2.

docker attach <generated_instanceid> 

Potrai ora ottenere il guscio PPB

+0

Questo ha funzionato perfettamente per me quando provavo ad avviare tutti i miei contenitori con 'docker-compose up', grazie. – Nobilis

+2

Per qualche motivo, questo non funziona per me. Ho una versione docker-comporre 2.1 – Divick

+0

Data l'inquadratura della domanda sono sorpreso che questa non sia la risposta accettata. Ha qualche stranezza ma fa assolutamente ciò che è stato chiesto. –