Skip to main content
 首页 » 编程设计

python之Docker 虚拟环境

2025年01月19日31zengkefu

对于 Docker 等容器化应用程序,是否可以使用 virtualenv 使环境从构建过程一直运行到最终运行镜像?似乎通过 pip 创建 virtualenv 并运行环境似乎永远行不通。

例如:

RUN pip3 install virtualenv 
RUN virtualenv venv 
RUN source venv/bin/activate 

似乎永远不会呈现真正的虚拟环境,而以下 pip 安装将安装在该环境下。我需要或相信我需要此设置的原因是特定目录使用的依赖项是相邻目录的不同版本:文件夹 B 使用 numpy 版本 X,而文件夹 C 使用 numpy 版本 Y。

对于 Docker,有没有我忘记的工具或功能允许我像虚拟环境一样使用 pip 安装,在不同目录中使用相同依赖项的不同版本?

请您参考如下方法:

Docker RUN 是构建步骤。它在之前的图层上创建了一个新图层,本质上创建了一个新图像。所以你的问题的答案是“否”。

考虑使用 ENTRYPOINT 和/或 CMD,或者为了方便起见编写启动脚本。

编写 RUN 脚本也可能满足您的需求:RUN my_deploy_for_venv.sh 将在一层执行,因此如果您在脚本中启动 venv ,您将在执行期间拥有它。不过,您必须在容器启动时重新启动它。