我在一个 Docker 容器中运行 Ollama,该容器是我从官方镜像中创建的。我可以通过在命令行中键入命令,通过交互式 shell 成功拉取容器中的模型,例如:
ollama pull nomic-embed-text
此命令拉入模型:nomic-embed-text。
现在我尝试通过 dockerfile 做同样的事情:
FROM ollama/ollama
RUN ollama pull nomic-embed-text
# Expose port 11434
EXPOSE 11434
# Set the entrypoint
ENTRYPOINT ["ollama", "serve"]
并得到
Error: could not connect to ollama app, is it running?
------
dockerfile:9
--------------------
7 | COPY . .
8 |
9 | >>> RUN ollama pull nomic-embed-text
10 |
11 | # Expose port 11434
--------------------
ERROR: failed to solve: process "/bin/sh -c ollama pull nomic-embed-text" did not complete successfully: exit code: 1
据我所知,我正在做同样的事情,但它在一个地方有效,而在另一个地方无效。有什么帮助吗?
根据错误消息,我更新了 dockerfile 以在拉取模型之前启动 ollama 服务。没有变化。
FROM ollama/ollama
# Expose port 11434
EXPOSE 11434
RUN ollama serve &
RUN ollama pull nomic-embed-text
它给出了相同的错误消息。
试试这个:
Dockerfile:
FROM ollama/ollama
COPY ./run-ollama.sh /tmp/run-ollama.sh
WORKDIR /tmp
RUN chmod +x run-ollama.sh \
&& ./run-ollama.sh
EXPOSE 11434
运行-ollama.sh:
#!/usr/bin/env bash
ollama serve &
ollama list
ollama pull nomic-embed-text
ollama serve &
ollama list
ollama pull qwen:0.5b-chat