services: app: image: daschswiss/dsp-app:latest ports: - "4200:4200" networks: - knora-net db: # should be the same version as in Dependencies.scala, # make sure to use the same version in ops-deploy repository when deploying new DSP releases! image: daschswiss/apache-jena-fuseki:5.5.0-3 ports: - "3030:3030" volumes: - db-home:/fuseki:delegated - db-import:/staging:delegated networks: - knora-net environment: - TZ=Europe/Zurich - ADMIN_PASSWORD=test - JVM_ARGS=-Xmx3G - 'JAVA_TOOL_OPTIONS=-javaagent:/usr/local/lib/opentelemetry-javaagent.jar' - 'PYROSCOPE_SERVER_ADDRESS=http://alloy:4040' - 'PYROSCOPE_APPLICATION_NAME=DSP_db_db' - 'PYROSCOPE_FORMAT=jfr' - 'PYROSCOPE_PROFILER_ALLOC=512k' - 'OTEL_EXPORTER_OTLP_ENDPOINT=http://alloy:4318' - 'OTEL_SERVICE_NAME=DSP_db_db' - 'OTEL_JAVAAGENT_EXTENSIONS=/usr/local/lib/pyroscope-otel.jar' - 'OTEL_PYROSCOPE_ADD_PROFILE_URL=false' - 'OTEL_PYROSCOPE_ADD_PROFILE_BASELINE_URL=false' - 'OTEL_PYROSCOPE_START_PROFILING=true' deploy: resources: limits: memory: 8G sipi: image: daschswiss/knora-sipi:latest ports: - "1024:1024" volumes: - /tmp:/tmp - ./sipi/config:/sipi/config:delegated - ./sipi/images:/sipi/images:delegated - ./sipi/server:/sipi/server:delegated - ./sipi/scripts:/sipi/scripts:delegated networks: - knora-net environment: - TZ=Europe/Zurich - SIPI_EXTERNAL_PROTOCOL=http - SIPI_EXTERNAL_HOSTNAME=0.0.0.0 - SIPI_EXTERNAL_PORT=1024 # Use the following line if you start the api as a docker container from this docker-compose.yml # - SIPI_WEBAPI_HOSTNAME=api # Use the following line if you start the api from your IDE - SIPI_WEBAPI_HOSTNAME=host.docker.internal - SIPI_WEBAPI_PORT=3333 - KNORA_WEBAPI_KNORA_API_EXTERNAL_HOST=0.0.0.0 - KNORA_WEBAPI_KNORA_API_EXTERNAL_PORT=3333 - CLEAN_TMP_DIR_USER=clean_tmp_dir_user - CLEAN_TMP_DIR_PW=clean_tmp_dir_pw # entrypoint: [ "valgrind", "--leak-check=yes", "/sipi/sipi" ] ## uncomment to run SIPI under valgrind # command: --config=/sipi/config/sipi.docker-test-config.lua ## command variant to start the sipi container with test routes enabled command: --config=/sipi/config/sipi.docker-config.lua deploy: resources: limits: memory: 4G ingest: image: daschswiss/dsp-ingest:latest ports: - "3340:3340" volumes: - ./sipi/images:/opt/images:delegated - ./sipi/tmp-dsp-ingest:/opt/temp:delegated - ingest-db:/opt/db:delegated networks: - knora-net environment: - SERVICE_HOST=0.0.0.0 - SERVICE_PORT=3340 - SERVICE_LOG_FORMAT=text - STORAGE_ASSET_DIR=/opt/images - STORAGE_TEMP_DIR=/opt/temp - JWT_AUDIENCE=http://localhost:3340 - JWT_ISSUER=0.0.0.0:3333 - JWT_SECRET=UP 4888, nice 4-8-4 steam engine - SIPI_USE_LOCAL_DEV=false - ALLOW_ERASE_PROJECTS=true - DB_JDBC_URL=jdbc:sqlite:/opt/db/ingest.sqlite - DSP_API_URL=http://host.docker.internal:3333 # - JWT_DISABLE_AUTH=true # Uncomment this line if you want to disable authentication for the ingest service deploy: resources: limits: memory: 2G api: image: daschswiss/knora-api:latest depends_on: - alloy - db - sipi ports: - "3333:3333" - "5555:5555" - "3339:3339" volumes: - /tmp:/tmp # Needed for local development when resetting the triplestore - ./test_data:/opt/test_data networks: - knora-net environment: - TZ=Europe/Zurich - KNORA_AKKA_LOGLEVEL=DEBUG - KNORA_AKKA_STDOUT_LOGLEVEL=DEBUG - KNORA_WEBAPI_TRIPLESTORE_HOST=db - KNORA_WEBAPI_TRIPLESTORE_DBTYPE=fuseki - KNORA_WEBAPI_SIPI_INTERNAL_HOST=sipi - KNORA_WEBAPI_TRIPLESTORE_FUSEKI_USERNAME=admin - KNORA_WEBAPI_TRIPLESTORE_FUSEKI_PASSWORD=test - KNORA_WEBAPI_ALLOW_RELOAD_OVER_HTTP=true - KNORA_WEBAPI_KNORA_API_EXTERNAL_HOST=0.0.0.0 - KNORA_WEBAPI_KNORA_API_EXTERNAL_PORT=3333 - KNORA_WEBAPI_DSP_INGEST_AUDIENCE=http://localhost:3340 - KNORA_WEBAPI_DSP_INGEST_BASE_URL=http://ingest:3340 - DSP_API_LOG_LEVEL=INFO - ALLOW_ERASE_PROJECTS=true # - DSP_API_LOG_APPENDER=JSON # if this variable is set, JSON logs are activated locally - 'JAVA_TOOL_OPTIONS="-javaagent:/usr/local/lib/opentelemetry-javaagent.jar"' - 'PYROSCOPE_SERVER_ADDRESS=http://alloy:4040' - 'PYROSCOPE_APPLICATION_NAME=DSP_svc_api' - 'PYROSCOPE_FORMAT=jfr' - 'PYROSCOPE_PROFILER_ALLOC=512k' - 'OTEL_EXPORTER_OTLP_ENDPOINT=http://alloy:4318' - 'OTEL_SERVICE_NAME=DSP_svc_api' - 'OTEL_JAVAAGENT_EXTENSIONS=/usr/local/lib/pyroscope-otel.jar' - 'OTEL_PYROSCOPE_ADD_PROFILE_URL=false' - 'OTEL_PYROSCOPE_ADD_PROFILE_BASELINE_URL=false' - 'OTEL_PYROSCOPE_START_PROFILING=true' deploy: resources: limits: memory: 6G alloy: container_name: alloy image: grafana/otel-lgtm:latest ports: - "3001:3000" # Grafana web UI (login: admin/admin) - mapped to 3001 to avoid conflict - "4317:4317" # OTLP gRPC receiver - "4318:4318" # OTLP HTTP receiver - "4040:4040" # Pyroscope endpoint networks: - knora-net environment: # Enable anonymous authentication for local development (no password needed) - GF_AUTH_ANONYMOUS_ENABLED=true - GF_AUTH_ANONYMOUS_ORG_ROLE=Admin restart: unless-stopped networks: knora-net: name: knora-net volumes: db-home: db-import: ingest-db: