【发布时间】:2021-12-29 16:38:35
【问题描述】:
我是 Docker 的新手并且正在学习它,我的问题是我必须在 Docker 中使用 venv 还是不重要?因为我无法在docker中配置venv,它给了我一个错误,比如cannot import 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/
如果我不使用 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:... 的警告
有人能解释清楚吗?
提前致谢
【问题讨论】:
-
在 Docker 中使用 venv 是完全没有必要的 IMO。我从来没有使用过,也从来没有遇到过任何问题,不使用也稍微简单一点
-
如果您对此消息感到恼火,您可以在 Dockerfile 中添加新用户并在用户的主目录中安装东西,在您的 pip 命令中指定
--user标志,但正如@IainShelvington 所说,这已经完全不必要。问题是重复的:stackoverflow.com/questions/68673221/… -
这能回答你的问题吗? WARNING: Running pip as the 'root' user
-
我想要完整的解释为什么以及为什么不在 Docker 中使用 venv
标签: python django docker docker-compose