Docker 中的 Ollama 通过交互式 shell 拉取模型,而不是通过 dockerfile 中的 RUN 命令拉取模型

问题描述 投票:0回答:1

我在一个 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

它给出了相同的错误消息。

docker dockerfile ollama
1个回答
0
投票

试试这个:

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
© www.soinside.com 2019 - 2024. All rights reserved.