# --------------------------------------------------------------------------- # docker-compose.runtime-assets.yml # # Overlay that provisions shared runtime data volumes (ML models, certificates, # licenses) via an init container. Use alongside the main compose file: # # docker compose -f docker-compose.stella-ops.yml \ # -f devops/runtime-assets/docker-compose.runtime-assets.yml \ # up -d # # The init container runs once, copies assets into named volumes, and exits. # Services mount the same volumes read-only. # # Prerequisites: # 1. Run ./devops/runtime-assets/acquire.sh --models (at minimum) # 2. Build: docker build -f devops/runtime-assets/Dockerfile.runtime-assets \ # -t stellaops/runtime-assets:latest . # --------------------------------------------------------------------------- services: # Init container: populates shared volumes, then exits runtime-assets-init: image: stellaops/runtime-assets:latest build: context: ../.. dockerfile: devops/runtime-assets/Dockerfile.runtime-assets volumes: - stellaops-models:/mnt/models - stellaops-certificates:/mnt/certificates - stellaops-licenses:/mnt/licenses restart: "no" # Override AdvisoryAI to mount the models volume advisory-ai-web: volumes: - stellaops-models:/app/models:ro - stellaops-certificates:/app/etc/certs:ro environment: KnowledgeSearch__OnnxModelPath: "/app/models/all-MiniLM-L6-v2.onnx" depends_on: runtime-assets-init: condition: service_completed_successfully advisory-ai-worker: volumes: - stellaops-models:/app/models:ro - stellaops-certificates:/app/etc/certs:ro environment: KnowledgeSearch__OnnxModelPath: "/app/models/all-MiniLM-L6-v2.onnx" depends_on: runtime-assets-init: condition: service_completed_successfully volumes: stellaops-models: name: stellaops-models stellaops-certificates: name: stellaops-certificates stellaops-licenses: name: stellaops-licenses