| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- version: '3.9'
- services:
- box-redis:
- image: redis:7
- restart: unless-stopped
- ports:
- - '6379:6379'
- healthcheck:
- test: ["CMD", "redis-cli", "-h", "127.0.0.1", "ping"]
- interval: 10s
- timeout: 5s
- retries: 5
- volumes:
- - redis_data:/data
- networks:
- - box-network
- box-rabbitmq:
- image: rabbitmq:3.12-management
- restart: unless-stopped
- ports:
- - '5672:5672'
- - '15672:15672'
- environment:
- RABBITMQ_DEFAULT_USER: boxrabbit
- RABBITMQ_DEFAULT_PASS: BoxRabbit2025
- RABBITMQ_DEFAULT_VHOST: /
- healthcheck:
- test: ["CMD", "rabbitmq-diagnostics", "status"]
- interval: 10s
- timeout: 5s
- retries: 5
- volumes:
- - rabbitmq_data:/var/lib/rabbitmq
- networks:
- - box-network
- box-mongodb:
- image: mongo:7
- restart: unless-stopped
- command: ["mongod", "--replSet", "rs0", "--bind_ip_all"]
- ports:
- - '27017:27017'
- environment:
- MONGO_INITDB_ROOT_USERNAME: boxadmin
- MONGO_INITDB_ROOT_PASSWORD: boxpass
- MONGO_INITDB_DATABASE: box_admin
- healthcheck:
- test: ["CMD", "mongo", "--quiet", "--eval", "db.adminCommand('ping')", "-u", "boxadmin", "-p", "boxpass", "--authenticationDatabase", "admin"]
- interval: 10s
- timeout: 5s
- retries: 5
- volumes:
- - mongo_data:/data/db
- - ./docker/mongo/init-repl.js:/docker-entrypoint-initdb.d/init-repl.js:ro
- networks:
- - box-network
- box-mysql:
- image: mysql:8
- restart: unless-stopped
- profiles:
- - migration
- ports:
- - '3306:3306'
- environment:
- MYSQL_ROOT_PASSWORD: rootpass
- MYSQL_DATABASE: box_admin
- healthcheck:
- test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1"]
- interval: 10s
- timeout: 5s
- retries: 5
- volumes:
- - mysql_data:/var/lib/mysql
- networks:
- - box-network
- box-mgnt-api:
- build:
- context: .
- dockerfile: apps/box-mgnt-api/Dockerfile
- ports:
- - '3300:3300'
- env_file:
- - .env.docker
- environment:
- NODE_ENV: development
- APP_HOST: 0.0.0.0
- APP_PORT: 3300
- APP_CORS_ORIGIN: '*'
- REDIS_DB: 0
- REDIS_TLS: 'false'
- depends_on:
- box-redis:
- condition: service_healthy
- box-rabbitmq:
- condition: service_healthy
- box-mongodb:
- condition: service_healthy
- networks:
- - box-network
- box-app-api:
- build:
- context: .
- dockerfile: apps/box-app-api/Dockerfile
- ports:
- - '3301:3301'
- env_file:
- - .env.docker
- environment:
- NODE_ENV: development
- APP_HOST: 0.0.0.0
- APP_PORT: 3301
- APP_CORS_ORIGIN: '*'
- REDIS_DB: 1
- REDIS_TLS: 'false'
- depends_on:
- box-redis:
- condition: service_healthy
- box-rabbitmq:
- condition: service_healthy
- box-mongodb:
- condition: service_healthy
- networks:
- - box-network
- box-stats-api:
- build:
- context: .
- dockerfile: apps/box-stats-api/Dockerfile
- ports:
- - '3302:3302'
- env_file:
- - .env.docker
- environment:
- NODE_ENV: development
- APP_HOST: 0.0.0.0
- APP_PORT: 3302
- APP_CORS_ORIGIN: '*'
- REDIS_DB: 2
- REDIS_TLS: 'false'
- depends_on:
- box-redis:
- condition: service_healthy
- box-rabbitmq:
- condition: service_healthy
- box-mongodb:
- condition: service_healthy
- networks:
- - box-network
- volumes:
- redis_data:
- rabbitmq_data:
- mongo_data:
- mysql_data:
- networks:
- box-network:
- driver: bridge
|