Python在Docker容器中

3

我对Docker还很陌生,所以这个问题可能很简单。

我正在构建一个基于ubuntu:vivid镜像的镜像的Docker容器。 当在容器中执行我的脚本时,我遇到了一个错误:

exec: "python": executable file not found in $PATH

我该如何解决这个问题?当我尝试在我的Docker文件中运行apt-get install python时:

FROM my_image # based on ubuntu:vivid

RUN apt-get update && \
    apt-get install -y python3

ENV PATH /:$PATH

COPY file.py /

CMD ["python", "file.py", "-h"]

我的理解是:

WARNING: The following packages cannot be authenticated!
  libexpat1 libffi6 libmagic1 libmpdec2 libssl1.0.0 libpython3.4-minimal
  mime-support libsqlite3-0 libpython3.4-stdlib python3.4-minimal
  python3-minimal python3.4 libpython3-stdlib dh-python python3 file
E: There are problems and -y was used without --force-yes
The command '/bin/sh -c apt-get update &&   apt-get install -y python3' returned a non-zero code: 100
make: *** [image] Error 1

编辑:添加了Dockerfile内容


请尝试使用apt-get安装Python,或在您的计算机中查找Python可执行文件并将其添加到$PATH中。 - minhhn2910
你可以尝试使用官方 Python Docker 镜像 - OneCricketeer
@cricket_007 因为我的已经基于另一张图片,所以我不能做到这一点。 - Ela
1
请添加您的Dockerfile内容。从容器的shell中简单运行apt-get并不是首选 - OneCricketeer
你可以尝试使用 apt-get -y update 命令。 - BMW
我现在已经更新了问题,展示了我的Docker内容。 - Ela
2个回答

2

我尝试了你的方法,但是出现了 Do you want to continue? [Y/n] Abort. The command '/bin/sh -c apt-get update && apt-get install - git python' returned a non-zero code: 1 的错误提示。 - Ela
@Ela,好的,我已经相应地编辑了答案,添加了参数-yq-yqq,这样您就可以进入非交互模式。 - VonC
这个方法可行,更新时的“-yq”是不必要的。此外,也可以通过install -y --force-yes来实现,如果您想包含在答案中,可以进行更新。我不知道哪种方式更可取。 - Ela

1
你正在安装 python3,然后使用 python 的可执行文件,我遇到了相同的问题,并通过使用 python3 解决了它。
尝试更改 Dockerfile 的最后一行:
而不是 CMD ["python", "file.py", "-h"]
尝试: CMD ["python3", "file.py", "-h"]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接