Docker 有 venv 还是没有?

mir*_*dil 4 python django docker docker-compose

我是 Docker 新手,正在学习它,我的问题是我是否必须在 Docker 中使用 venv 还是它不重要?因为我无法在 docker 中配置 venv,所以它给了我一个错误,比如无法导入 Django activate venv...,我读了一些答案但无法得到答案,有些人说需要使用 venv 其他人不重要。

我的 DOcker 文件

FROM python:3.8

#set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

RUN python3 -m venv venv

#Set work directory
WORKDIR /code/

#Install dependencies
COPY requirements.txt .
RUN . /venv/bin/activate && pip install -r requirements.txt

COPY . /code/
Run Code Online (Sandbox Code Playgroud)

如果我不使用 venv Docker 运行良好,但是当涉及到安装包时,它会给我警告,比如WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead:... 有人可以清楚地解释一下吗?

提前致谢

小智 5

Docker 和 Python virtualenv 有什么区别?

virtualenv 仅封装 Python 依赖项。Docker 容器封装了整个操作系统。

换句话说,docker容器类似于虚拟环境,只是封装了自己的OS而不是自己的项目环境。这意味着虚拟环境在 Docker 容器内部是没有用的,因为环境已经被封装了。


归档时间:

查看次数:

3214 次

最近记录:

4 年,2 月 前