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