# ================================================== # docker-compose.yml -- local testing (Podman or Docker) # ================================================== services: marker-api: build: context: . dockerfile: Containerfile image: marker-api:latest env_file: - .env environment: - TORCH_DEVICE=${TORCH_DEVICE:-cpu} - MODEL_DTYPE=${MODEL_DTYPE:-float32} - OLLAMA_HOST=${OLLAMA_HOST:-http://localhost:11435} - DEESEEK_OCR_MODEL=${DEESEEK_OCR_MODEL:-} - OCR_BACKEND=${OCR_BACKEND:-marker} - DEEPSEEK_OLLAMA_HOST=${DEEPSEEK_OLLAMA_HOST:-http://host.containers.internal:11434} - DEEPSEEK_OCR_MODEL=${DEEPSEEK_OCR_MODEL:-deepseek-ocr:latest} - DEEPSEEK_OCR_PROMPT=<|grounding|>Free OCR. - API_KEY=${API_KEY:-} - SELF_URL=http://localhost:8001 - LLM_SERVICE=marker.services.openai.OpenAIService - USE_LLM=${USE_LLM:-false} - OPENAI_BASE_URL=http://localhost:11435/v1 - OPENAI_API_KEY=not-needed - OPENAI_MODEL= - PORT=${PORT:-8001} - HOST=0.0.0.0 - GUNICORN_WORKERS=${GUNICORN_WORKERS:-3} - GUNICORN_THREADS=${GUNICORN_THREADS:-2} - GUNICORN_TIMEOUT=${GUNICORN_TIMEOUT:-600} ports: - "${PORT:-8001}:${PORT:-8001}" volumes: - marker-results:/app/conversion_results:rw,Z - marker-cache:/app/.cache:rw,Z restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:${PORT:-8001}/health"] interval: 30s timeout: 10s retries: 3 start_period: 120s volumes: marker-results: marker-cache: