【问题标题】:Docker: env: can't execute 'python3': No such file or directoryDocker:env:无法执行'python3':没有这样的文件或目录
【发布时间】:2020-06-28 11:30:23
【问题描述】:

我正在尝试使用环境变量运行我的 docker 容器,但每次它都说:env: can't execute 'python3': No such file or directory。如果我在没有变量的情况下做同样的事情,它工作正常。

这是我的 Dockerfile 示例:

FROM "This is coming from registry"

RUN apk add --update \
  python3

RUN mkdir -p /folder

COPY file.py __init__.py requirements.txt /folder/

RUN pip3 install -r /folder/requirements.txt

WORKDIR /folder

ENV ONE="test"
ENV TWO="test test"

ENTRYPOINT ["/usr/bin/env"]

CMD ["python3", "file.py"]

我应该更改我的 Dockerfile 中的某些内容,还是我的 file.py 中可能有问题?我在那里使用os.environ。感谢您的帮助!

【问题讨论】:

  • 问题可能出在您的基础映像中。我尝试使用 alpine 作为基础映像的 Dockerfile,它工作正常。
  • 好的。必须检查是否有我应该解决的问题。
  • 在我的基本映像中,我有 entrypoint.sh 文件,其中有:#!/bin/ash exec robot "$@" 我认为这可能是导致问题的原因?
  • 那么这取决于该脚本的作用,因为在您发布的示例中您根本没有运行它
  • 当我运行 file.py 时,它会生成测试并使用机器人运行它们

标签: python python-3.x docker environment-variables dockerfile


【解决方案1】:

为什么你的入口点是/usr/bin/env,应该是python3

如果你想使用特定的环境,那么将它设为/usr/bin/env/bin/python3 ... 或者实际的 python3 位置

错误是由于 python3 不可访问且与环境变量无关

【讨论】:

  • 我试过这个,但现在显示“sh: python3: not found”
  • 这意味着在您的基础映像中缺少 python3 您需要提供类似于 /usr/bin/env/bin/python3 的 venv 路径
猜你喜欢
  • 2022-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-05
相关资源
最近更新 更多