Ho problemi con l'uso di docker-compose per collegare un contenitore django con postgres e contenitori mongo? Sto cercando di utilizzare "docker-compose up" che avvia i contenitori mongo e postgres (poiché devo collegarli entrambi), ma l'app django non è ancora in grado di connettersi a mongodb con le impostazioni predefinite. Le mie contenuto dei file django-compose.yml vengono copiati di seguito:docker-compose per eseguire django con mongodb
db1:
image: postgres
db2:
image: mongo
ports:
- "27017:27017"
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
links:
- db1
- db2
Esso si connette con Postgres con le impostazioni predefinite. Posso anche telnet alla porta mongodb localmente. Eppure, ottengo questo errore sulla partenza del contenitore web:
File "/usr/local/lib/python2.7/site-packages/mongoengine/connection.py", line 124, in get_connection web_1 | raise ConnectionError("Cannot connect to database %s :\n%s" % (alias, e)) web_1 | mongoengine.connection.ConnectionError: Cannot connect to database default : web_1 | [Errno 111] Connection refused
PS: avevo iniziato con successo a django-postgres collegati applicazione sul mio localhost, ma è venuto a mancare il collegamento al db, su un'istanza AWS. Questo è un altro problema a cui devo ancora accedere.
Sulla macchina host eseguire 'run nomeapplicazione env' finestra mobile-comporre, ricercare l'indirizzo IP che si riferiva alla vostra immagine del database, è ciò che si utilizza per connettersi al database in esecuzione in un contenitore. –
questo funziona per me come un fascino, e per la cronaca, quando si utilizza la stessa strategia per PORT, ricordarsi di trasformarlo con int, qualcosa come: ... '' port = int (MONGODB_PORT) '' ... – jfunez