aboutsummaryrefslogtreecommitdiffstats
path: root/src/ollama_provision
diff options
context:
space:
mode:
Diffstat (limited to 'src/ollama_provision')
-rw-r--r--src/ollama_provision/Dockerfile12
-rw-r--r--src/ollama_provision/entrypoint.sh5
-rwxr-xr-xsrc/ollama_provision/init_models.sh17
3 files changed, 34 insertions, 0 deletions
diff --git a/src/ollama_provision/Dockerfile b/src/ollama_provision/Dockerfile
new file mode 100644
index 0000000..4aa439b
--- /dev/null
+++ b/src/ollama_provision/Dockerfile
@@ -0,0 +1,12 @@
+FROM ollama/ollama:latest
+
+ENV DEBIAN_FRONTEND=noninteractive
+RUN apt-get update
+RUN apt-get --yes -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confnew" install bash curl jq
+
+ADD ./src/ollama_provision/init_models.sh /init_models.sh
+ADD ./src/ollama_provision/entrypoint.sh /entrypoint.sh
+RUN chmod 755 /entrypoint.sh
+
+ENTRYPOINT ["/entrypoint.sh"]
+#ENTRYPOINT ["tail", "-f", "/dev/null"] # to debug
diff --git a/src/ollama_provision/entrypoint.sh b/src/ollama_provision/entrypoint.sh
new file mode 100644
index 0000000..1952755
--- /dev/null
+++ b/src/ollama_provision/entrypoint.sh
@@ -0,0 +1,5 @@
+#!/usr/bin/env bash
+
+ollama start &
+echo "pull models into ollama volumes"
+bash /init_models.sh
diff --git a/src/ollama_provision/init_models.sh b/src/ollama_provision/init_models.sh
new file mode 100755
index 0000000..1eae979
--- /dev/null
+++ b/src/ollama_provision/init_models.sh
@@ -0,0 +1,17 @@
+#!/usr/bin/env bash
+
+
+IFS=',' read -r -a models_arr <<< "${MODELS}"
+
+## now loop through the above array
+for m in "${models_arr[@]}"
+do
+ ollama list | tail -n +2 | cut -d' ' -f1 | grep ${m} > /dev/null
+ if [[ $? -ne 0 ]]
+ then
+ echo "download {m}"
+ ollama pull "${m}"
+ else
+ echo "${m} already installed"
+ fi
+done