Files
IPSExtractor/docker-compose.yml
T

77 lines
2.2 KiB
YAML

services:
database:
image: postgres:16-alpine
container_name: ipsextractor-db
environment:
POSTGRES_DB: ipsextractor
POSTGRES_USER: ipsextractor
POSTGRES_PASSWORD: ipsextractor
ports:
- "5432:5432"
volumes:
- ipsextractor_db:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ipsextractor -d ipsextractor"]
interval: 5s
timeout: 5s
retries: 10
extraction:
build:
context: ./services/extraction
dockerfile: Dockerfile
container_name: ipsextractor-extraction
depends_on:
database:
condition: service_healthy
environment:
DATABASE_URL: postgresql+psycopg://ipsextractor:ipsextractor@database:5432/ipsextractor
EXTRACTOR_PROVIDER: ${EXTRACTOR_PROVIDER:-}
EXTRACTOR_BASE_URL: ${EXTRACTOR_BASE_URL:-}
EXTRACTOR_API_KEY: ${EXTRACTOR_API_KEY:-}
EXTRACTOR_MODEL: ${EXTRACTOR_MODEL:-}
NORMALIZER_PROVIDER: ${NORMALIZER_PROVIDER:-}
NORMALIZER_BASE_URL: ${NORMALIZER_BASE_URL:-}
NORMALIZER_API_KEY: ${NORMALIZER_API_KEY:-}
NORMALIZER_MODEL: ${NORMALIZER_MODEL:-}
NORMALIZER_TIMEOUT_S: ${NORMALIZER_TIMEOUT_S:-0}
EXTRACTOR_TIMEOUT_S: ${EXTRACTOR_TIMEOUT_S:-120}
PDF_DPI: ${PDF_DPI:-600}
PDF_THREAD_COUNT: ${PDF_THREAD_COUNT:-10}
CONCURRENCY_LIMIT: ${CONCURRENCY_LIMIT:-4}
ALLOWED_DOCUMENT_TYPES: ${ALLOWED_DOCUMENT_TYPES:-CC,TI,CE,RC,PA,PPT,PEP,EPT,NUIP}
ports:
- "8001:8001"
volumes:
- ${IPS_DOCUMENT_ROOT:-./data}:/data
cleaning:
build:
context: ./services/cleaning
dockerfile: Dockerfile
container_name: ipsextractor-cleaning
depends_on:
database:
condition: service_healthy
environment:
DATABASE_URL: postgresql+psycopg://ipsextractor:ipsextractor@database:5432/ipsextractor
ports:
- "8002:8002"
api_gateway:
build:
context: ./services/api_gateway
dockerfile: Dockerfile
container_name: ipsextractor-api
depends_on:
- extraction
- cleaning
environment:
EXTRACTION_URL: http://extraction:8001
CLEANING_URL: http://cleaning:8002
ports:
- "8000:8000"
volumes:
ipsextractor_db: