services: app: build: context: . dockerfile: Dockerfile image: ai-disclosure-standard:1.8.0-local env_file: - .env environment: BULK_URL: ${BULK_URL:-http://localhost:8081} ports: - "8080:8080" volumes: - license-cache:/data read_only: true tmpfs: - /tmp:size=16m,mode=1777 security_opt: - no-new-privileges:true cap_drop: - ALL restart: unless-stopped healthcheck: test: ["CMD", "/ai-disclosure", "--healthcheck"] interval: 15s timeout: 3s retries: 3 start_period: 5s bulk: build: context: . dockerfile: Dockerfile.bulk image: ai-disclosure-bulk:1.0.0-local environment: CORE_INTERNAL_URL: http://app:8080 DISCLOSURE_BASE_URL: ${BASE_URL:-http://localhost:8080} GENERATOR_URL: ${BASE_URL:-http://localhost:8080} BULK_PUBLIC_NAME: AI Disclosure Bulk BULK_MAX_URLS: ${BULK_MAX_URLS:-500} BULK_WORKERS: ${BULK_WORKERS:-4} ports: - "8081:8081" read_only: true tmpfs: - /tmp:size=8m,mode=1777 security_opt: - no-new-privileges:true cap_drop: - ALL depends_on: app: condition: service_healthy restart: unless-stopped healthcheck: test: ["CMD", "/ai-disclosure-bulk", "--healthcheck"] interval: 15s timeout: 3s retries: 3 start_period: 5s volumes: license-cache: