diff --git a/embed_model/Dockerfile b/embed_model/Dockerfile index 0a2836a..4f93373 100644 --- a/embed_model/Dockerfile +++ b/embed_model/Dockerfile @@ -1,10 +1,11 @@ FROM svenbrnn/runpod-ollama:0.5.7 -ARG MODEL_NAME -ENV MODEL_NAME=$MODEL_NAME +ARG MODEL_NAMES +ENV MODEL_NAMES=$MODEL_NAMES ADD preload_model.sh /preload_model.sh +RUN apt-get update && apt-get install bash RUN chmod +x /preload_model.sh && /preload_model.sh # Copy the model to the volume FROM svenbrnn/runpod-ollama:0.5.7 -COPY --from=0 /runpod-volume /runpod-volume \ No newline at end of file +COPY --from=0 /runpod-volume /runpod-volume diff --git a/embed_model/README.md b/embed_model/README.md index 3c9796d..a2536c8 100644 --- a/embed_model/README.md +++ b/embed_model/README.md @@ -1,3 +1,3 @@ # Embed model into runpod-worker-ollama -Run ``docker build --build-arg MODEL_NAME="" -t /: .`` \ No newline at end of file +Run ``docker build --build-arg MODEL_NAMES=",..." -t /: .`` diff --git a/embed_model/preload_model.sh b/embed_model/preload_model.sh index d625056..5e503cb 100644 --- a/embed_model/preload_model.sh +++ b/embed_model/preload_model.sh @@ -1,7 +1,7 @@ -#!/bin/sh +#!/bin/bash # Start the Ollama server in the background -echo "Starting Ollama server to preload model: $MODEL_NAME" +echo "Starting Ollama server to preload models: $MODEL_NAMES" ollama serve & # Capture the PID of the Ollama server @@ -11,15 +11,20 @@ OLLAMA_PID=$! echo "Waiting for Ollama server to start..." sleep 5 -# Pull the specified model -echo "Pulling model: $MODEL_NAME" -if ollama pull "$MODEL_NAME"; then - echo "Successfully pulled model: $MODEL_NAME" -else - echo "Failed to pull model: $MODEL_NAME" - kill $OLLAMA_PID - exit 1 -fi +# Split the comma-separated model names into an array +IFS=',' read -r -a MODELS <<< "$MODEL_NAMES" + +# Loop through each model and pull it +for MODEL_NAME in "${MODELS[@]}"; do + echo "Pulling model: $MODEL_NAME" + if ollama pull "$MODEL_NAME"; then + echo "Successfully pulled model: $MODEL_NAME" + else + echo "Failed to pull model: $MODEL_NAME" + kill $OLLAMA_PID + exit 1 + fi +done # Stop the Ollama server echo "Stopping Ollama server..."