version: '3.8' services: mysql: image: mysql:8.0 container_name: voxpopuli_mysql environment: MYSQL_ROOT_PASSWORD: rootpassword MYSQL_DATABASE: voxpopuli_users MYSQL_USER: voxpopuli MYSQL_PASSWORD: voxpopuli_pass ports: - "3306:3306" volumes: - mysql_data:/var/lib/mysql healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] interval: 10s timeout: 5s retries: 5 mongodb-reports: image: mongo:7.0 container_name: voxpopuli_mongo_reports environment: MONGO_INITDB_ROOT_USERNAME: admin MONGO_INITDB_ROOT_PASSWORD: admin_password MONGO_INITDB_DATABASE: voxpopuli_reports ports: - "27017:27017" volumes: - mongo_reports_data:/data/db healthcheck: test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"] interval: 10s timeout: 5s retries: 5 command: mongod --auth mongodb-notifications: image: mongo:7.0 container_name: voxpopuli_mongo_notifications environment: MONGO_INITDB_ROOT_USERNAME: admin MONGO_INITDB_ROOT_PASSWORD: admin_password MONGO_INITDB_DATABASE: voxpopuli_notifications ports: - "27018:27017" volumes: - mongo_notifications_data:/data/db healthcheck: test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"] interval: 10s timeout: 5s retries: 5 command: mongod --auth rabbitmq: image: rabbitmq:3.13-management container_name: voxpopuli_rabbitmq environment: RABBITMQ_DEFAULT_USER: voxpopuli RABBITMQ_DEFAULT_PASS: voxpopuli_pass ports: - "5672:5672" - "15672:15672" # Management UI volumes: - rabbitmq_data:/var/lib/rabbitmq healthcheck: test: ["CMD", "rabbitmq-diagnostics", "-q", "ping"] interval: 10s timeout: 5s retries: 5 volumes: mysql_data: mongo_reports_data: mongo_notifications_data: rabbitmq_data: