Настройте docker -compose для связи между приложением сельдерея и Redis Broker. - PullRequest
1 голос
/ 03 марта 2020

У меня есть приложение python, которое содержит экземпляр Celery:

tasks.py:

from celery import Celery
from APIGateway.urls import REACTION_URL

BACKEND = BROKER = 'redis://172.18.0.7:6379'
celery = Celery(__name__, backend=BACKEND, broker=BROKER)


@celery.task
def my_task(*params):
    ...

Я создаю задачу следующим образом:

params = ...
task = my_task.delay(params)
result = task.get()

Предыдущий экземпляр сельдерея хочет связаться с брокером / бэкендом redis, который размещен в отдельном контейнере docker.

docker -compose.yaml:

version: '2'
services:
  gateway:
    image: dicetellers/apigateway
    ports:
      - "5000:5000"
    networks:
      dice_network:
        ipv4_address: 172.18.0.2

  redis-gateway:
    image: redis
    ports:
      - "6379:6379"
    networks:
      dice_network:
        ipv4_address: 172.18.0.7

networks:
  dice_network:
    driver: bridge
    ipam:
      config:
        - subnet: 172.18.0.0/16 

Я также попытался изменить стандартную конфигурацию redis, обновив файл redis.conf, но это не сработало. Кто-то знает, если я делаю что-то не так?

...