# Development: volumes mount source so code updates apply without rebuild name: sensor-hub services: cassandra: image: docker-mirror.liara.ir/cassandra:5.0 container_name: sensor-hub-cassandra ports: - "9042:9042" volumes: - sensor_hub_cassandra_data:/var/lib/cassandra healthcheck: test: ["CMD-SHELL", "cqlsh -e 'DESCRIBE KEYSPACES' || exit 1"] interval: 20s timeout: 10s retries: 10 db: image: docker-mirror.liara.ir/mysql:8.0 container_name: sensor-hub-db environment: MYSQL_DATABASE: ${DB_NAME:-sensor_hub} MYSQL_USER: ${DB_USER:-sensor_hub} MYSQL_PASSWORD: ${DB_PASSWORD:-changeme} MYSQL_ROOT_PASSWORD: ${DB_PASSWORD:-changeme} volumes: - sensor_hub_mysql_data:/var/lib/mysql healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${DB_PASSWORD:-changeme}"] interval: 5s timeout: 5s retries: 5 phpmyadmin: image: docker-mirror.liara.ir/phpmyadmin:latest container_name: sensor-hub-phpmyadmin environment: PMA_HOST: db PMA_PORT: 3306 UPLOAD_LIMIT: 64M ports: - "8081:80" depends_on: db: condition: service_healthy web: build: . container_name: sensor-hub-web command: python manage.py runserver 0.0.0.0:8000 volumes: - .:/app ports: - "8010:8000" env_file: - .env environment: DB_HOST: db CASSANDRA_HOSTS: cassandra depends_on: db: condition: service_healthy cassandra: condition: service_started volumes: sensor_hub_mysql_data: sensor_hub_cassandra_data: