services: gateway: build: context: .. dockerfile: Dockerfile env_file: - .env.all-local environment: PUBLIC_MODEL_ID: glm-5.2-visual-runtime VISUAL_RUNTIME_MODE: local GLM_BASE_URL: http://glm52-vllm:8000/v1 GLM_API_KEY: EMPTY GLM_MODEL: glm-5.2 VISION_BASE_URL: http://vision-vllm:8000/v1 VISION_API_KEY: EMPTY VISION_MODEL: qwen3-omni OCR_BASE_URL: http://ocr:8080 DATABASE_URL: postgresql+psycopg://glm_vvr:glm_vvr@postgres:5432/glm_vvr OBJECT_STORE_ENDPOINT: http://minio:9000 OBJECT_STORE_BUCKET: glm-vvr OBJECT_STORE_ACCESS_KEY: glm-vvr OBJECT_STORE_SECRET_KEY: glm-vvr-password ports: - "8000:8000" depends_on: - glm52-vllm - vision-vllm - ocr - postgres - minio glm52-vllm: image: vllm/vllm-openai:glm52 command: - "${GLM_MODEL_PATH:-zai-org/GLM-5.2-FP8}" - --host - 0.0.0.0 - --port - "8000" - --served-model-name - glm-5.2 - --kv-cache-dtype - fp8 - --tensor-parallel-size - "${GLM_TENSOR_PARALLEL_SIZE:-8}" - --speculative-config.method - mtp - --speculative-config.num_speculative_tokens - "5" - --tool-call-parser - glm47 - --reasoning-parser - glm45 - --enable-auto-tool-choice ports: - "8001:8000" ipc: host volumes: - "${HF_HOME:-${HOME}/.cache/huggingface}:/root/.cache/huggingface" - "../models:/models:ro" deploy: resources: reservations: devices: - driver: nvidia count: all capabilities: [gpu] vision-vllm: image: vllm/vllm-openai:latest command: - "${QWEN_OMNI_MODEL_PATH:-Qwen/Qwen3-Omni-30B-A3B-Instruct}" - --omni - --host - 0.0.0.0 - --port - "8000" - --served-model-name - qwen3-omni - --tensor-parallel-size - "${VISION_TENSOR_PARALLEL_SIZE:-2}" - --limit-mm-per-prompt - '{"image": 8, "video": 1, "audio": 1}' ports: - "8002:8000" ipc: host volumes: - "${HF_HOME:-${HOME}/.cache/huggingface}:/root/.cache/huggingface" - "../models:/models:ro" - visual-runtime-data:/data deploy: resources: reservations: devices: - driver: nvidia count: all capabilities: [gpu] ocr: build: context: ./ocr ports: - "8081:8080" postgres: image: postgres:16 environment: POSTGRES_DB: glm_vvr POSTGRES_USER: glm_vvr POSTGRES_PASSWORD: glm_vvr ports: - "5432:5432" volumes: - postgres-data:/var/lib/postgresql/data minio: image: minio/minio:latest command: server /data --console-address ":9001" environment: MINIO_ROOT_USER: glm-vvr MINIO_ROOT_PASSWORD: glm-vvr-password ports: - "9000:9000" - "9001:9001" volumes: - minio-data:/data volumes: postgres-data: minio-data: visual-runtime-data: