
refactor(docker): restructure docker-compose for modular configuration - Added reusable base configuration block (x-base-config) for ports, environment variables, volumes, deployment resources, restart policy, and health check. - Updated services to include base configuration directly using `<<: *base-config` syntax. - Removed redundant `base-config` service definition.
65 lines
1.6 KiB
YAML
65 lines
1.6 KiB
YAML
# Base configuration (not a service, just a reusable config block)
|
||
x-base-config: &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
|
||
|
||
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"]
|
||
<<: *base-config # extends yerine doğrudan yapılandırmayı dahil ettik
|
||
|
||
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"]
|
||
<<: *base-config
|
||
|
||
# Hub services for different platforms and versions
|
||
crawl4ai-hub-amd64:
|
||
image: unclecode/crawl4ai:${VERSION:-basic}-amd64
|
||
profiles: ["hub-amd64"]
|
||
<<: *base-config
|
||
|
||
crawl4ai-hub-arm64:
|
||
image: unclecode/crawl4ai:${VERSION:-basic}-arm64
|
||
profiles: ["hub-arm64"]
|
||
<<: *base-config |