| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 | version: "3"services:  # database for master  db_pgsql:    image: postgres:12    environment:      POSTGRES_USER: master_service      POSTGRES_PASSWORD: password      POSTGRES_DB: master_service    volumes:      - pgsql_data:/var/lib/postgresql/data  # database for replica  db_mysql:    image: mysql:8.0    environment:      MYSQL_ROOT_PASSWORD: password      MYSQL_USER: replica_service      MYSQL_PASSWORD: password      MYSQL_DATABASE: replica_service    volumes:      - mysql_data:/var/lib/mysql    command: --default-authentication-plugin=mysql_native_password  # cache storage for replica  redis:    image: redis  # CQRS transport backend  rabbitmq:    image: rabbitmq:3-management-alpine    environment:      RABBITMQ_DEFAULT_USER: rabbitmq      RABBITMQ_DEFAULT_PASS: password    ports:      - 15672:15672  # Domain models provider  master:    build:      context: master_service    ports:      - 8000:8000    depends_on:      - db_pgsql      - rabbitmq    volumes:      - ./master_service:/app    command: >      dockerize -wait tcp://rabbitmq:5672 -timeout 30s      dockerize -wait tcp://db_pgsql:5432 -timeout 30s      ./manage.py runserver 0.0.0.0:8000  # replica WEB app  replica:    build:      context: replica_service    ports:      - 8001:8000    depends_on:      - db_mysql      - redis      - rabbitmq    volumes:      - ./replica_service:/app    command: >      dockerize -wait tcp://rabbitmq:5672 -timeout 30s      dockerize -wait tcp://db_mysql:3306 -timeout 30s      dockerize -wait tcp://redis:6379 -timeout 30s      ./manage.py runserver 0.0.0.0:8000  # replica CQRS consumer worker  replica_cqrs_consumer:    build:      context: replica_service    depends_on:      - db_mysql      - rabbitmq    volumes:      - ./replica_service:/app    command: >      dockerize -wait tcp://rabbitmq:5672 -timeout 30s      dockerize -wait tcp://db_mysql:3306 -timeout 30s      dockerize -wait tcp://redis:6379 -timeout 30s      ./manage.py cqrs_consume -w2volumes:  pgsql_data:    driver: local  mysql_data:    driver: local
 |