Spaces:
Runtime error
Runtime error
| version: '3.8' | |
| # Docker Compose configuration for Android Environment | |
| # | |
| # This file enables easy deployment of multiple Android emulator instances | |
| # for large-scale parallel training. | |
| # | |
| # Usage: | |
| # # Single instance | |
| # docker-compose up | |
| # | |
| # # Scale to 10 instances | |
| # docker-compose up --scale android-env=10 | |
| # | |
| # # With GPU nodes | |
| # docker-compose -f docker-compose.yml -f docker-compose.hpc.yml up | |
| services: | |
| # Main Android environment service | |
| android-env: | |
| build: | |
| context: ../../.. | |
| dockerfile: src/envs/android_env/server/Dockerfile | |
| args: | |
| BASE_IMAGE: openenv-base:latest | |
| image: android-env:latest | |
| # Environment configuration | |
| environment: | |
| # Required | |
| - ANDROID_AVD_NAME=${ANDROID_AVD_NAME:-default_pixel_6} | |
| - ANDROID_TASK_PATH=${ANDROID_TASK_PATH:-/workspace/tasks/calculator_basic.textproto} | |
| # Optional | |
| - ANDROID_ADB_PATH=${ANDROID_ADB_PATH:-/opt/android-sdk/platform-tools/adb} | |
| - ANDROID_EMULATOR_PATH=${ANDROID_EMULATOR_PATH:-/opt/android-sdk/emulator/emulator} | |
| - ANDROID_AVD_HOME=${ANDROID_AVD_HOME:-/root/.android/avd} | |
| - ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT:-/opt/android-sdk} | |
| - ANDROID_RUN_HEADLESS=${ANDROID_RUN_HEADLESS:-true} | |
| - ANDROID_IMAGE_FORMAT=${ANDROID_IMAGE_FORMAT:-JPEG} | |
| - ANDROID_IMAGE_QUALITY=${ANDROID_IMAGE_QUALITY:-85} | |
| # Port mapping | |
| ports: | |
| - "8000-8099:8000" # Allow port range for scaling | |
| # Volume mounts | |
| volumes: | |
| # Mount tasks directory | |
| - ./examples/tasks:/workspace/tasks:ro | |
| # Mount apps directory (for custom APKs) | |
| - ${ANDROID_APPS_DIR:-./examples/apps}:/workspace/apps:ro | |
| # Optional: Persist AVD data | |
| # - android-avd-data:/root/.android/avd | |
| # Device access for KVM hardware acceleration | |
| devices: | |
| - /dev/kvm:/dev/kvm | |
| # Resource limits | |
| deploy: | |
| resources: | |
| limits: | |
| cpus: '4' | |
| memory: 8G | |
| reservations: | |
| cpus: '2' | |
| memory: 4G | |
| # Restart policy | |
| restart: unless-stopped | |
| # Health check | |
| healthcheck: | |
| test: ["CMD", "curl", "-f", "http://localhost:8000/health"] | |
| interval: 30s | |
| timeout: 10s | |
| retries: 3 | |
| start_period: 120s # Emulator takes time to boot | |
| # Logging | |
| logging: | |
| driver: "json-file" | |
| options: | |
| max-size: "10m" | |
| max-file: "3" | |
| # Optional: Uncomment to persist AVD data across container restarts | |
| # volumes: | |
| # android-avd-data: | |
| # driver: local | |
| networks: | |
| default: | |
| driver: bridge | |