services: browser: build: context: ./browser_env dockerfile: Dockerfile.browser container_name: browser-use-browser environment: - MODEL_DEFAULT=${MODEL_DEFAULT:-qwen3.5-122b} - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_BASE_URL=${OPENAI_BASE_URL} - BROWSER_USE_RPC_HOST=0.0.0.0 - BROWSER_USE_RPC_PORT=8787 ports: - "6080:6080" - "9222:9222" networks: browser-net: aliases: - browser shm_size: '2gb' volumes: - browser_profiles:/src/browser_data - ./workspace:/app/workspace:rw restart: always healthcheck: test: [ "CMD-SHELL", "curl -fsS http://127.0.0.1:9222/json/version >/dev/null && curl -fsS http://127.0.0.1:8787/health >/dev/null || exit 1" ] interval: 10s timeout: 3s retries: 12 start_period: 20s browser-api: build: context: ./api dockerfile: Dockerfile container_name: browser-use-api environment: - BROWSER_USE_RPC_URL=http://browser:8787/run - BROWSER_API_HOST=0.0.0.0 - BROWSER_API_PORT=8088 - BROWSER_API_MAX_CONCURRENCY=2 depends_on: browser: condition: service_healthy ports: - "8088:8088" healthcheck: test: [ "CMD-SHELL", "python -c \"import urllib.request; urllib.request.urlopen('http://127.0.0.1:8088/health', timeout=2).read()\" >/dev/null 2>&1 || exit 1", ] interval: 120s timeout: 3s retries: 12 start_period: 10s restart: always networks: - browser-net volumes: browser_profiles: networks: browser-net: driver: bridge