Außerhalb Docker, ist die IP-Adresse von Redis und Rabbitmq als 'Localhost' in meiner Django-App in Ubuntu 16.04 Umgebung eingestellt. Ich versuche jedoch, meinen Webdienst in Docker zu migrieren. Ich benutze Docker's offizielles Repository redis und rabbitmq.Rabbitmq IP-Adresse und Redis IP-Adresse in Docker
In meinem Django muss ich die IP-Adressen von redis und rabbitmq angeben, um mit ihnen in meiner App zu verbinden. Ich habe keine Ahnung, wie ich ihre IP-Adresse in Docker ermitteln kann. In Docker-compose.yml wird die Konfiguration unten angegeben:
version: '2'
services:
# RabbitMQ
rabbit:
hostname: my-rabbit
image: rabbitmq:3
ports:
- "5672:5672" # we forward this port because it's useful for
debugging
- "15672:15672" # here, we can access rabbitmq management plugin
#Redis
redis:
image: redis:latest
#Data Processing WS
web:
build: .
command: python manage.py runserver 0.0.0.0:9060 --noreload
volumes:
- .:/srv
ports:
- "9060:9060"
links: ["rabbit", "redis"]
Wenn ich versuche, ihre ip gesetzt als 'localhost', Fehler
settings.CONNECTION = pika.BlockingConnection(pika.ConnectionParameters(host=settings.RABBIT_MQ_
IP_ADDRESS, heartbeat_interval=0))
web_1 | File "/usr/local/lib/python2.7/dist-
packages/pika/adapters/blocking_connection.py", line 339, in __init__
web_1 | self._process_io_for_connection_setup()
web_1 | File "/usr/local/lib/python2.7/dist-
packages/pika/adapters/blocking_connection.py", line 374, in
_process_io_for_connection_setup
web_1 | self._open_error_result.is_ready)
web_1 | File "/usr/local/lib/python2.7/dist-
packages/pika/adapters/blocking_connection.py", line 395, in _flush_output
web_1 | raise exceptions.ConnectionClosed()
web_1 | pika.exceptions.ConnectionClosed
Ich habe versucht und es funktioniert immer noch nicht. In weiteren Untersuchungen, ich noch Healthcheck: Test: ["CMD", "Curl", "-f", "http://172.17.0.3:15672"] Intervall: 30s Timeout: 10s Wiederholungen: 5 in meinem docker-compose.yml. Irgendeine Idee? –
Alberne Frage, aber führen Sie 'docker-compose down' aus, bevor Sie Änderungen an' docker-compose.yml' vornehmen? – grizzthedj
Ich 'ctrl + c' eigentlich zu beenden' docker-compose up' und führen 'docker-compose build' nach der Bearbeitung der' docker-compose.yml'. Ist das richtig? –