Вам нужно сообщить другим контейнерам, что вы зависите от них.Пример.Здесь вы видите, что PostgreSQL имеет зависимости от user_service и messages_service, вам нужно добавить это для каждого контейнера, который хочет использовать другие контейнеры, связанные или зависимые.Вот пример.
version: '3'
services:
db:
image: postgres
ports:
- '5434:5434'
user_service:
build: ""
environment:
- JWT_SECRET=mysecret_json_web_token_pass
command: python user/app.py
volumes:
- .:/microservices
ports:
- "9001:9001"
depends_on:
- db
notification_service:
build: ""
environment:
- JWT_SECRET=mysecret_json_web_token_pass
command: python notification/app.py
volumes:
- .:/microservices
ports:
- "9002:9002"
depends_on:
- db
для вашего случая вы можете добавить зависящий_on: - сельдерей - redis
Вы также можете стабилизировать локальную сеть .. но вместо того, чтобы сделать это, я создалконтейнеры в одном и том же docker-составлении таким образом, что они знают друг друга.
Вот еще один пример
version: '2'
services:
nginx:
image: nginx:latest
container_name: nx01
ports:
- "8001:8001"
volumes:
- ../src:/src
- ./static:/static
- ./media:/media/
- ./config/nginx:/etc/nginx/conf.d
depends_on:
- web
web:
build: .
container_name: dg01
command: gunicorn mydjango.wsgi 0.0.0.0:8000
depends_on:
- db
links:
- redis
volumes:
- ../src:/src
- ./static:/static
- ./media:/media/
expose:
- "8001"
db:
image: postgres:latest
container_name: pq01
ports:
- "5432:5432"
redis:
image: redis:latest
container_name: rd01
ports:
- '6379:6379'
celery:
build: .
container_name: cl01
command: celery worker --app=app.tasks
volumes:
- ..:/src
links:
- db
- redis
для вызова его в вашем коде ... используйте его следующим образом.
CELERY_BROKER_URL = 'redis://redis:6379/0'
CELERY_RESULT_BACKEND = 'redis://redis:6379/0'