- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用多阶段创建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
,所以它不起作用。只需提示,将您的CMD
和ENTRYPOINT
组合在其中之一下,通常不需要两个。尝试仅使用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/
我对使用 venv 还很陌生。对于许多不同的软件包,有没有办法告诉每个 venv 使用了多少?当我删除 venv 时,我是否也删除了为其中的所有内容分配的内存空间? 最佳答案 When I delet
我是 python venv 的新手,很抱歉可能会提出愚蠢的问题。 我正在开发一个小型图书馆。我已经创建了开发虚拟环境,其中包含库使用所需的所有包,并将所有版本的需求卡住到 requirements.
我想创建一个具有 python3.8 作为 python3 的 venv 在 Ubuntu 18.04 上 我做了: > sudo apt install python3.8 python3.8-ve
全部 我对运行 shell 脚本的格式有疑问我遇到这个问题是我设置了一个虚拟环境 但是当我输入 . venv/bin/activate 代码没有问题,运行成功。但是我知道另一种运行方式是使用 ./v
尽管已正确安装所需的开发库和 venv 库,但我还是收到了这些连续错误。 这是终端中的连续输出。 ~/Desktop/virtualenvs$ python3.8 -m venv newpy38 Th
这个问题在这里已经有了答案: Why 'python3 -m venv myenv' installs older version of pip into myenv than any version
假设我创建了一个名为 venv (virtualenv venv) 的虚拟环境 从阅读教程中,我了解到有两种激活虚拟环境的方法: 。 venv/bin/激活 source venv/bin/activ
此问题已解决,已向 Python.org 报告错误。见我的self-answer below解决方法,直到它在 Python 的 future 版本中得到修复 我的一台电脑被这个 bug 咬住了,它不
选择venv python作为解释器后,当VScode左下方显示venv python时:- 我是否仍应在 VScode 终端中激活 venv 以进行 PIP 安装? 或者,由于 venv pytho
我的 Ubuntu 已经安装了几个 Python: /usr/bin/python2.7: Python 2.7.5 /usr/local/bin/python3.6: Python 3.6.10 /
我想使用 Enthought 的 Canopy 发行版创建一个虚拟环境,但没有站点包。 以下:https://support.enthought.com/entries/21802240-Use-ve
(在用重复的问题投票标记我之前,请注意,我在这个问题上找到的所有内容都与 virtualenv 有关,而不是 venv) 系统: Ubuntu 服务器 16.04 已安装 Python 3.6,原生
我在 ubuntu 14.04 桌面上使用 emacs 24.5,并使用 pyvenv 包来管理我的虚拟环境。 我有两个不同的Python虚拟环境,一个使用Python 2,另一个使用Python 3
我想创建一个 venv 环境(不是 virtualenv )使用以下命令: sudo apt-get install python3.8-venv python3.8 -m venv venv_nam
我正在尝试使用以下方法在 Windows 中创建一个虚拟环境: python3 -m venv 运行上述命令后,在cmd中查看当前目录的内容时,没有看到venv目录出现。该命令不会引发任何错误。 这
我正在使用 .venv 创建一个用于项目的虚拟环境。在这个项目中,我需要访问 OpenAI GPT3 环境。为此,我有一个 API key ,但我想将其存储为环境变量。因为我使用windows和VS-
我正在尝试使用多阶段创建Python webapp docker镜像,以缩小镜像大小...现在大约300mb ...它也在使用虚拟环境。 docker镜像会构建并正常运行,直到我需要添加多阶段为止,以
正在学习Python和Django,想从PyCharm社区版2019.3激活虚拟环境 我可以看到在我的文件夹下创建的 venv 但是当我尝试使用命令激活它时 source venv/bin/activ
我正在使用 .venv 创建一个用于项目的虚拟环境。在这个项目中,我需要访问 OpenAI GPT3 环境。为此,我有一个 API key ,但我想将其存储为环境变量。因为我使用windows和VS-
正在学习Python和Django,想从PyCharm社区版2019.3激活虚拟环境 我可以看到在我的文件夹下创建的 venv 但是当我尝试使用命令激活它时 source venv/bin/activ
我是一名优秀的程序员,十分优秀!