找不到Python3和Docker多阶段构建文件

时间:2020-02-19 13:03:19

标签: python-3.x docker docker-multi-stage-build

我对docker不熟悉,我正在尝试为python3构建一个多阶段dockerfile

FROM ubuntu:18.04 as base
RUN apt-get -qy update && apt-get install python3 -y
WORKDIR /pydocktest
COPY test.py .

FROM  ubuntu:18.04 AS release
WORKDIR /pytest
COPY --from=base /usr/local/bin/ /usr/local/bin/
COPY --from=base /pydocktest .
CMD ["./test.py"]

然后

docker build -t test .
docker run test

输出

standard_init_linux.go:211: exec user process caused "no such file or directory"

但是当我在apt -get install python3部分运行release时,它能正常工作吗?那么为什么要多级安装,如果我要重新安装python,对不起,如果我听起来转储

1 个答案:

答案 0 :(得分:0)

简短的回答:如果您在最终映像中重新安装Python,则无需进行多阶段操作。

长答案:使用多阶段的原因之一是,在构建应用程序时需要特殊的应用程序和文件,而在运行时则不需要它们。在您的示例中,情况并非如此。

作为建议,您可以使用python3映像而不是自己安装它。这样可以简化您的Dockerfile:

FROM python:3
COPY test.py .
CMD [ "python", "./test.py" ]

如果您想了解有关多阶段Dockerfile背后原理的更多信息,请参阅我的Learn Docker书,并顺便说一句这是为菜鸟写的书。