我设法将 Ollama 作为 k8s STS 运行。我将其用于 Python Langchain LLM/RAG 应用程序。但是,以下 DockerfileENTRYPOINT
脚本尝试MODELS
从 k8s STS 清单中提取作为 ENV 导出的图像列表时遇到问题。Dockerfile 具有以下ENTRYPOINT
内容CMD
:
ENTRYPOINT ["/usr/local/bin/run.sh"]
CMD ["bash"]
run.sh
:
#!/bin/bash
set -x
ollama serve&
sleep 10
models="${MODELS//,/ }"
for i in "${models[@]}"; do \
echo model: $i \
ollama pull $i \
done
k8s日志:
+ models=llama3.2
/usr/local/bin/run.sh: line 10: syntax error: unexpected end of file
David Maze 的解决方案:
lifecycle:
postStart:
exec:
command:
- bash
- -c
- |
for i in $(seq 10); do
ollama ps && break
sleep 1
done
for model in ${MODELS//,/ }; do
ollama pull "$model"
done
ollama-0 1/2 CrashLoopBackOff 4 (3s ago) 115s
ollama-1 1/2 CrashLoopBackOff 4 (1s ago) 115s
Warning FailedPostStartHook 106s (x3 over 2m14s) kubelet PostStartHook failed
$ k logs -fp ollama-0
Defaulted container "ollama" out of: ollama, fluentd
Error: unknown command "ollama" for "ollama"
更新Dockerfile
:
ENTRYPOINT ["/bin/ollama"]
#CMD ["bash"]
CMD ["ollama", "serve"]
我需要定制Dockerfile
以便可以安装 Nvidia Container Toolkit。