86 lines
2.8 KiB
YAML
86 lines
2.8 KiB
YAML
services:
|
|
owl_imports_combiner:
|
|
build: ./python_services/owl_imports_combiner
|
|
environment:
|
|
- COMBINE_OWL_IMPORTS_ON_START=${COMBINE_OWL_IMPORTS_ON_START:-false}
|
|
- COMBINE_ENTRY_LOCATION
|
|
- COMBINE_OUTPUT_LOCATION
|
|
- COMBINE_OUTPUT_NAME
|
|
- COMBINE_FORCE=${COMBINE_FORCE:-false}
|
|
- TTL_PATH=${TTL_PATH:-/data/o3po.ttl}
|
|
volumes:
|
|
- ./data:/data:Z
|
|
|
|
backend:
|
|
build: ./backend_go
|
|
ports:
|
|
- "8000:8000"
|
|
environment:
|
|
- DEFAULT_NODE_LIMIT=${DEFAULT_NODE_LIMIT:-800000}
|
|
- DEFAULT_EDGE_LIMIT=${DEFAULT_EDGE_LIMIT:-2000000}
|
|
- MAX_NODE_LIMIT=${MAX_NODE_LIMIT:-10000000}
|
|
- MAX_EDGE_LIMIT=${MAX_EDGE_LIMIT:-20000000}
|
|
- INCLUDE_BNODES=${INCLUDE_BNODES:-false}
|
|
- CORS_ORIGINS=${CORS_ORIGINS:-http://localhost:5173}
|
|
- SPARQL_HOST=${SPARQL_HOST:-http://anzograph:8080}
|
|
- SPARQL_ENDPOINT
|
|
- SPARQL_USER=${SPARQL_USER:-admin}
|
|
- SPARQL_PASS=${SPARQL_PASS:-Passw0rd1}
|
|
- SPARQL_DATA_FILE=${SPARQL_DATA_FILE:-file:///opt/shared-files/o3po.ttl}
|
|
- SPARQL_GRAPH_IRI
|
|
- SPARQL_LOAD_ON_START=${SPARQL_LOAD_ON_START:-false}
|
|
- SPARQL_CLEAR_ON_START=${SPARQL_CLEAR_ON_START:-false}
|
|
- SPARQL_TIMEOUT_S=${SPARQL_TIMEOUT_S:-300}
|
|
- SPARQL_READY_RETRIES=${SPARQL_READY_RETRIES:-30}
|
|
- SPARQL_READY_DELAY_S=${SPARQL_READY_DELAY_S:-4}
|
|
- SPARQL_READY_TIMEOUT_S=${SPARQL_READY_TIMEOUT_S:-10}
|
|
- EDGE_BATCH_SIZE=${EDGE_BATCH_SIZE:-100000}
|
|
- FREE_OS_MEMORY_AFTER_SNAPSHOT=${FREE_OS_MEMORY_AFTER_SNAPSHOT:-false}
|
|
- LOG_SNAPSHOT_TIMINGS=${LOG_SNAPSHOT_TIMINGS:-false}
|
|
depends_on:
|
|
owl_imports_combiner:
|
|
condition: service_completed_successfully
|
|
anzograph:
|
|
condition: service_started
|
|
volumes:
|
|
- ./data:/data:Z
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-fsS", "http://localhost:8000/api/health"]
|
|
interval: 5s
|
|
timeout: 3s
|
|
retries: 60
|
|
|
|
frontend:
|
|
build: ./frontend
|
|
ports:
|
|
- "5173:5173"
|
|
environment:
|
|
- VITE_BACKEND_URL=${VITE_BACKEND_URL:-http://backend:8000}
|
|
volumes:
|
|
- ./frontend:/app
|
|
- /app/node_modules
|
|
depends_on:
|
|
backend:
|
|
condition: service_healthy
|
|
|
|
anzograph:
|
|
image: cambridgesemantics/anzograph:latest
|
|
container_name: anzograph
|
|
mem_limit: 20g
|
|
ports:
|
|
- "8080:8080"
|
|
- "8443:8443"
|
|
volumes:
|
|
- ./data:/opt/shared-files:Z
|
|
# Persist AnzoGraph state across container recreation (EULA acceptance, machine-id, settings, persistence).
|
|
- anzograph_app_home:/opt/anzograph/app-home
|
|
- anzograph_persistence:/opt/anzograph/persistence
|
|
- anzograph_config:/opt/anzograph/config
|
|
- anzograph_internal:/opt/anzograph/internal
|
|
|
|
volumes:
|
|
anzograph_app_home:
|
|
anzograph_persistence:
|
|
anzograph_config:
|
|
anzograph_internal:
|