Spaces:
Running
Running
Create start.sh
Browse files
start.sh
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# start.sh
|
2 |
+
#!/bin/bash
|
3 |
+
set -e
|
4 |
+
LOG_FILE=/data/startup.log
|
5 |
+
mkdir -p /data && touch $LOG_FILE && chmod 644 $LOG_FILE
|
6 |
+
echo "Starting Ollama server at $(date)" >> $LOG_FILE
|
7 |
+
ollama serve >> $LOG_FILE 2>&1 &
|
8 |
+
sleep 15
|
9 |
+
MODELS_TO_PULL="${MODELS_TO_PULL:-gemma-3-270m}"
|
10 |
+
echo "Pulling models: $MODELS_TO_PULL" | tee -a $LOG_FILE
|
11 |
+
IFS=',' read -ra MODEL_ARRAY <<< "$MODELS_TO_PULL"
|
12 |
+
for model in "${MODEL_ARRAY[@]}"; do
|
13 |
+
echo "Pulling model $model..." | tee -a $LOG_FILE
|
14 |
+
for attempt in {1..3}; do
|
15 |
+
if ollama pull "$model" >> $LOG_FILE 2>&1; then
|
16 |
+
echo "Model $model pulled successfully" | tee -a $LOG_FILE
|
17 |
+
break
|
18 |
+
else
|
19 |
+
echo "Attempt $attempt: Failed to pull model $model, retrying in 10 seconds..." | tee -a $LOG_FILE
|
20 |
+
sleep 10
|
21 |
+
fi
|
22 |
+
if [ $attempt -eq 3 ]; then
|
23 |
+
echo "Error: Failed to pull model $model after 3 attempts" | tee -a $LOG_FILE
|
24 |
+
exit 1
|
25 |
+
fi
|
26 |
+
done
|
27 |
+
done
|
28 |
+
echo "Starting Gunicorn server at $(date)" | tee -a $LOG_FILE
|
29 |
+
exec gunicorn --bind 0.0.0.0:7860 --workers 1 --timeout 120 --log-level info app:app >> $LOG_FILE 2>&1
|