services: # Local build services for different platforms crawl4ai-amd64: build: context: . dockerfile: Dockerfile args: PYTHON_VERSION: "3.10" INSTALL_TYPE: ${INSTALL_TYPE:-basic} ENABLE_GPU: false platforms: - linux/amd64 profiles: ["local-amd64"] extends: &base-config file: docker-compose.yml service: base-config crawl4ai-arm64: build: context: . dockerfile: Dockerfile args: PYTHON_VERSION: "3.10" INSTALL_TYPE: ${INSTALL_TYPE:-basic} ENABLE_GPU: false platforms: - linux/arm64 profiles: ["local-arm64"] extends: *base-config # Hub services for different platforms and versions crawl4ai-hub-amd64: image: unclecode/crawl4ai:${VERSION:-basic}-amd64 profiles: ["hub-amd64"] extends: *base-config crawl4ai-hub-arm64: image: unclecode/crawl4ai:${VERSION:-basic}-arm64 profiles: ["hub-arm64"] extends: *base-config # Base configuration to be extended base-config: ports: - "11235:11235" - "8000:8000" - "9222:9222" - "8080:8080" environment: - CRAWL4AI_API_TOKEN=${CRAWL4AI_API_TOKEN:-} - OPENAI_API_KEY=${OPENAI_API_KEY:-} - CLAUDE_API_KEY=${CLAUDE_API_KEY:-} volumes: - /dev/shm:/dev/shm deploy: resources: limits: memory: 4G reservations: memory: 1G restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:11235/health"] interval: 30s timeout: 10s retries: 3 start_period: 40s