46 lines
1.1 KiB
Bash
46 lines
1.1 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
# Support comma-separated list of models via OLLAMA_MODELS
|
|
# Falls back to single model via OLLAMA_MODEL for backwards compatibility
|
|
MODELS="${OLLAMA_MODELS:-${OLLAMA_MODEL:-llama-guard3:1b}}"
|
|
|
|
# Start Ollama server in background
|
|
ollama serve &
|
|
SERVER_PID=$!
|
|
|
|
# Wait for server to be ready
|
|
echo "Waiting for Ollama server to start..."
|
|
for i in {1..60}; do
|
|
if curl -sf http://localhost:11434/ > /dev/null 2>&1; then
|
|
echo "Ollama server is ready"
|
|
break
|
|
fi
|
|
sleep 1
|
|
done
|
|
|
|
# Pull each model in the comma-separated list
|
|
IFS=',' read -ra MODEL_ARRAY <<< "$MODELS"
|
|
for MODEL in "${MODEL_ARRAY[@]}"; do
|
|
# Trim whitespace
|
|
MODEL=$(echo "$MODEL" | xargs)
|
|
|
|
if [ -z "$MODEL" ]; then
|
|
continue
|
|
fi
|
|
|
|
# Check if model exists, pull if not
|
|
if ! ollama list | grep -q "^${MODEL}"; then
|
|
echo "Pulling model: ${MODEL}"
|
|
ollama pull "${MODEL}"
|
|
echo "Model ${MODEL} pulled successfully"
|
|
else
|
|
echo "Model ${MODEL} already available"
|
|
fi
|
|
done
|
|
|
|
echo "All models ready"
|
|
|
|
# Keep server running in foreground
|
|
wait $SERVER_PID
|