gpt4 book ai didi

python - 多阶段Dockerfile的问题(Python-Venv)

转载 作者:行者123 更新时间:2023-12-02 20:56:39 26 4
gpt4 key购买 nike

我正在尝试使用多阶段创建Python webapp docker镜像,以缩小镜像大小...现在大约300mb ...它也在使用虚拟环境。
docker镜像会构建并正常运行,直到我需要添加多阶段为止,以便我知道之后出了点问题...。您能帮我确定出什么问题吗?

FROM python:3.8.3-alpine AS origin
RUN apk update && apk add git
RUN apk --no-cache add py3-pip build-base
RUN pip install -U pip
RUN pip install virtualenv
RUN virtualenv venv
RUN source venv/bin/activate
WORKDIR /opt/app
COPY . .
RUN pip install -r requirements.txt
## Works fine until this point ""

FROM alpine:latest
WORKDIR /opt/app
COPY --from=origin /opt/venv /opt/venv
ENV PATH="/opt/venv/bin:$PATH" VIRTUAL_ENV="/opt/venv"
COPY . /opt/app/
CMD [ "file.py" ]
ENTRYPOINT ["python"]
没有VENV,它看起来像这样(仍然抛出错误“sh:python:not found”):
FROM python:3.8.3-alpine AS origin
WORKDIR /opt/app
RUN apk update && apk add git
RUN apk --no-cache add py3-pip build-base
RUN pip install -U pip
COPY . .
RUN pip install -r requirements.txt

FROM alpine:latest
WORKDIR /home
COPY --from=origin /opt/app .
CMD sh -c 'python file.py'

最佳答案

您仍然需要在运行时容器中使用pyhton,因为您将最后一个图像更改为alpine,所以它不起作用。只需提示,将您的CMDENTRYPOINT组合在其中之一下,通常不需要两个。尝试仅使用ENTRYPOINT,因为您可以在运行时轻松传递CMD,例如,更轻松地激活 Debug模式。
编辑:请远离 Alpine 作为you can get some weird issues about it的python应用程序。您可以使用“python_version-slim-buster”图像,它们足够小。

关于python - 多阶段Dockerfile的问题(Python-Venv),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62626552/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com