services: autofigure-edit: build: context: . dockerfile: Dockerfile args: BASE_IMAGE: ${BASE_IMAGE:-docker.m.daocloud.io/library/python:3.11-slim} PIP_INDEX_URL: ${PIP_INDEX_URL:-https://pypi.org/simple} PIP_EXTRA_INDEX_URL: ${PIP_EXTRA_INDEX_URL:-} image: autofigure-edit:latest container_name: autofigure-edit restart: unless-stopped init: true stop_grace_period: 20s ports: - "8000:8000" environment: PYTHONUNBUFFERED: "1" HF_HOME: /app/.cache/huggingface HF_TOKEN: ${HF_TOKEN:-} HUGGINGFACE_HUB_TOKEN: ${HF_TOKEN:-} OPENROUTER_MULTIMODAL_RETRIES: ${OPENROUTER_MULTIMODAL_RETRIES:-3} OPENROUTER_MULTIMODAL_RETRY_DELAY: ${OPENROUTER_MULTIMODAL_RETRY_DELAY:-1.5} ROBOFLOW_API_KEY: ${ROBOFLOW_API_KEY:-} ROBOFLOW_API_URL: ${ROBOFLOW_API_URL:-https://serverless.roboflow.com/sam3/concept_segment} ROBOFLOW_API_FALLBACK_URLS: ${ROBOFLOW_API_FALLBACK_URLS:-} FAL_KEY: ${FAL_KEY:-} dns: - ${DOCKER_DNS_1:-223.5.5.5} - ${DOCKER_DNS_2:-119.29.29.29} volumes: - ./outputs:/app/outputs - ./uploads:/app/uploads - hf_cache:/app/.cache/huggingface healthcheck: test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/healthz', timeout=3)"] interval: 30s timeout: 5s retries: 5 start_period: 40s volumes: hf_cache: