This repository has been archived on 2026-09-03. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
open-brainy/examples/docker-deployment/docker-compose.yml

66 lines
1.6 KiB
YAML
Raw Normal View History

version: '3.8'
services:
brainy-app:
build:
context: .
dockerfile: Dockerfile
ports:
- "3000:3000"
environment:
# Set custom models path for Brainy
- BRAINY_MODELS_PATH=/app/models
# Optional: Set other Brainy configuration
- NODE_ENV=production
volumes:
# Optional: Mount models from host (alternative to embedding in image)
# - ./models:/app/models:ro
- ./logs:/app/logs
restart: unless-stopped
deploy:
resources:
limits:
cpus: '1.0'
memory: 2G
reservations:
cpus: '0.5'
memory: 1G
# Alternative: Mount models from a separate volume
brainy-app-with-volume:
build:
context: .
dockerfile: Dockerfile
ports:
- "3001:3000"
environment:
- BRAINY_MODELS_PATH=/models
- NODE_ENV=production
volumes:
# Mount models from external volume
- brainy-models:/models:ro
- ./logs:/app/logs
restart: unless-stopped
depends_on:
- model-downloader
# Service to download and prepare models
model-downloader:
image: node:24-alpine
volumes:
- brainy-models:/models
command: >
sh -c "
if [ ! -f /models/universal-sentence-encoder/model.json ]; then
echo 'Downloading Universal Sentence Encoder models...';
mkdir -p /models/universal-sentence-encoder;
# Add your model download logic here
echo 'Models would be downloaded here in a real setup';
else
echo 'Models already exist';
fi
"
volumes:
brainy-models:
driver: local