Ich habe Probleme mit Docker-Compose, um einen Django-Container mit Postgres und Mongo-Container zu verknüpfen? Ich versuche "docker-compose up" zu verwenden, was die Mongo- und Postgrees-Container startet (da ich beides verbinden muss), aber die Django-App kann keine Verbindung zu mongodb herstellen. Meine django-compose.yml Dateiinhalte werden im Folgenden kopiert:docker-komponieren, um django mit mongodb zu laufen
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
Es mit Postgres mit Standardeinstellung verbinden ist. Ich kann auch lokal zum Mongodb-Port telnet. Trotzdem bekomme ich diesen Fehler beim Start des Web-Container:
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: ich erfolgreich ein django-Postgres verbunden App auf meinem localhost begonnen hatte, aber es versäumt Anschluss an eine AWS-Instanz-DB. Das ist ein anderes Problem, das ich noch zu Wurzel von bekommen muss.
Auf Host-Maschine ausführen 'Docker-compose Lauf yourappname env', sucht IP-Adresse, die auf Ihre Datenbank Bild verwendet, das ist, was Sie in einem Container zu Ihrer Datenbank ausgeführt verbinden. –
das funktioniert für mich wie ein Charme, und nur für den Rekord, wenn Sie die gleiche Strategie für PORT verwenden, denken Sie daran, es mit int zu transformieren, etwas wie: ... '' port = int (MONGODB_PORT) '' ... – jfunez