En dehors de Docker, l'adresse IP de redis et rabbitmq est définie comme 'localhost' dans mon application django dans l'environnement Ubuntu 16.04. Cependant, j'essaie de migrer mon service web vers docker. J'utilise le référentiel officiel de Docker redis et rabbitmq.Adresse IP Rabbitmq et adresse IP Redis dans Docker
Dans mon Django settings.py
, je dois indiquer les adresses IP de redis et rabbitmq afin de me connecter à eux dans mon application. Je n'ai aucune idée comment déterminer leur adresse IP dans Docker. Dans docker-compose.yml, la configuration est indiqué ci-dessous:
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"]
Lorsque je tente de définir leur ip comme 'localhost', l'erreur se produit
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
J'ai essayé et cela ne fonctionne toujours pas. Dans des recherches plus approfondies, j'inclus toujours healthcheck: test: ["CMD", "curl", "-f", "http://172.17.0.3:15672"] intervalle: 30s délai: 10s tentatives: 5 dans mon docker-compose.yml. Une idée? –
Question idiote, mais exécutez-vous 'docker-compose down' avant d'apporter des modifications à' docker-compose.yml'? – grizzthedj
En fait 'ctrl + c' pour terminer' docker-compose up' et effectuer 'docker-composer build' après avoir édité le' docker-compose.yml'. Est-ce que ça va? –