# Development: volumes mount source so code updates apply without rebuild name: ai services: db: image: mysql:8.0 container_name: ai-db environment: MYSQL_DATABASE: ${DB_NAME:-ai} MYSQL_USER: ${DB_USER:-ai} MYSQL_PASSWORD: ${DB_PASSWORD:-changeme} MYSQL_ROOT_PASSWORD: ${DB_PASSWORD:-changeme} volumes: - ai_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: phpmyadmin:latest container_name: ai-phpmyadmin environment: PMA_HOST: db PMA_PORT: 3306 UPLOAD_LIMIT: 64M ports: - "8082:80" depends_on: db: condition: service_healthy web: build: . container_name: ai-web command: python manage.py runserver 0.0.0.0:8000 volumes: - .:/app ports: - "8020:8000" env_file: - .env environment: DB_HOST: db depends_on: db: condition: service_healthy volumes: ai_mysql_data: