45 lines
3.3 KiB
YAML
45 lines
3.3 KiB
YAML
services:
|
||
rabbitmq: # Сервис для RabbitMQ (брокера сообщений)
|
||
image: rabbitmq:3-management # Используемый образ RabbitMQ с веб-интерфейсом управления
|
||
ports:
|
||
- "5672:5672" # Порт для подключения клиентов к RabbitMQ
|
||
- "15672:15672" # Порт для доступа к веб-интерфейсу управления
|
||
environment: # Переменные окружения для настройки RabbitMQ
|
||
- RABBITMQ_DEFAULT_USER=guest # Имя пользователя по умолчанию
|
||
- RABBITMQ_DEFAULT_PASS=guest # Пароль пользователя по умолчанию
|
||
healthcheck:
|
||
test: ["CMD", "rabbitmqctl", "status"] # Проверка работоспособности RabbitMQ
|
||
interval: 10s # Интервал между проверками (10 секунд)
|
||
timeout: 5s # Тайм-аут для проверки (5 секунд)
|
||
retries: 5 # Количество попыток при неудачных проверках
|
||
|
||
publisher: # Сервис для запуска издателя (publisher)
|
||
build:
|
||
context: . # Использует текущую директорию для сборки Docker-образа
|
||
command: python publisher.py # Команда для запуска издателя
|
||
environment:
|
||
- PYTHONUNBUFFERED=1 # Отключение буферизации вывода Python
|
||
depends_on:
|
||
rabbitmq:
|
||
condition: service_healthy # Ожидает готовности RabbitMQ перед запуском
|
||
|
||
consumer_1: # Сервис для запуска первого потребителя (consumer_1)
|
||
build:
|
||
context: . # Использует текущую директорию для сборки Docker-образа
|
||
command: python consumer_1.py # Команда для запуска первого потребителя
|
||
environment:
|
||
- PYTHONUNBUFFERED=1 # Отключение буферизации вывода Python
|
||
depends_on:
|
||
rabbitmq:
|
||
condition: service_healthy # Ожидает готовности RabbitMQ перед запуском
|
||
|
||
consumer_2: # Сервис для запуска второго потребителя (consumer_2)
|
||
build:
|
||
context: . # Использует текущую директорию для сборки Docker-образа
|
||
command: python consumer_2.py # Команда для запуска второго потребителя
|
||
environment:
|
||
- PYTHONUNBUFFERED=1 # Отключение буферизации вывода Python
|
||
depends_on:
|
||
rabbitmq:
|
||
condition: service_healthy # Ожидает готовности RabbitMQ перед запуском
|