【问题标题】:Problem with docker while using compose up due to pip由于 pip,使用 compose up 时 docker 出现问题
【发布时间】:2020-04-17 22:22:44
【问题描述】:

我正在使用以下代码处理 Dockerfile

FROM python:3.4-alpine
COPY . /web
WORKDIR /web/api
RUN pip install -r ./requirements.txt
RUN adduser -D myuser
USER myuser
ENTRYPOINT ["python"]
CMD ["app.py"]

我的代码运行良好,但在使用 docker-compose up --build 时出现以下错误,

Step 4/8 : RUN pip install -r ./requirements.txt
 ---> Running in 99f13c64bc5d
Error loading shared library libpython3.4m.so.1.0: No such file or directory (needed by /usr/local/bin/pip)
Error relocating /usr/local/bin/pip: _Py_char2wchar: symbol not found
Error relocating /usr/local/bin/pip: _PyMem_RawStrdup: symbol not found
Error relocating /usr/local/bin/pip: PyMem_RawMalloc: symbol not found
Error relocating /usr/local/bin/pip: Py_Main: symbol not found
Error relocating /usr/local/bin/pip: PyMem_RawFree: symbol not found
ERROR: Service 'web' failed to build: The command '/bin/sh -c pip install -r ./requirements.txt' returned a non-zero code: 127

请帮我解决这个问题。

我已经安装了 python3,pip。

【问题讨论】:

  • 试试pip3 而不是pip
  • 我猜 pip 应该可以工作,因为我自己最近在 docker 文件中使用了 pip 而不是 pip3。我猜问题出在你的目录结构上。它无法在容器中提到的 workdir 中找到 requirements.txt 文件。共享目录结构或提供 requirements.txt 的完整路径而不是相对路径。这应该有效。
  • @Mukesh,我的目录结构是as,在api目录下我有Dockerfile和requirements.txt
  • 我觉得的问题是你的web目录中的所有文件都在容器内。我怀疑容器中的 web 内是否会有任何 api 目录。我建议你浏览这个 docker 目录一次,你会了解整个目录结构:github.com/iamjhamukesh/Docker/tree/master/… 或者更确切地说是我的 docker github 中的任何其他目录。所有这些代码都有效。根据我的说法,您的问题出在目录结构上。尝试根据 repo 对齐目录结构。它可能会起作用。
  • 此外,如果以上所有方法都失败了,请尝试将您的工作目录更改为简单的 /web/ 或者如果您的容器中有 api 目录,那么您也可以尝试 /web/api/。不要忘记 /在 api 之后。它可能会起作用。让我们看看。

标签: python-3.x api docker pip


【解决方案1】:

试试pip3而不是pip怎么样

pip3 install -r ./requirements.txt

【讨论】:

  • 我也有同样的问题
【解决方案2】:

如果您使用的是 Linux 系统,请输入 pip3 而不是单独输入 pip 因为我遇到了同样的问题并且它有效

pip3 install -r ./requirements.txt'

【讨论】:

  • 我也有同样的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-20
  • 2018-12-18
  • 2021-06-13
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多