python - 警告 : Running pip as the 'root' user

标签 python django docker ubuntu pip

我正在 Docker 中制作我的 python Django 应用程序的简单图像。但是在构建容器结束时它会抛出下一个警告(我在 Ubuntu 20.04 上构建它):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如果我在图像中安装 Python 要求,为什么会引发此警告?我正在使用以下方法构建我的图像:

sudo docker build -t my_app:1 .
我是否应该担心 pip 抛出的警告,因为我知道它会破坏我的系统?
这是我的 Dockerfile:
FROM python:3.8-slim-buster

WORKDIR /app
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]

最佳答案

构建容器的方式不会添加用户,因此一切都以 root 身份完成。
您可以通过执行以下操作创建用户并安装到该用户的主目录;

FROM python:3.8.3-alpine

RUN pip install --upgrade pip

RUN adduser -D myuser
USER myuser
WORKDIR /home/myuser

COPY --chown=myuser:myuser requirements.txt requirements.txt
RUN pip install --user -r requirements.txt

ENV PATH="/home/myuser/.local/bin:${PATH}"

COPY --chown=myuser:myuser . .

CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]

关于python - 警告 : Running pip as the 'root' user,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68673221/

相关文章:

python - 导入错误: cannot import name widgets from django. contrib.admin

docker compose with build --pull 选项

python - 如何输出最常见的元音

python - 命令行变量不会覆盖机器人框架中的套件级别变量

python - 是否通过 Apache 为 Django 应用程序的每个实例启动一个单独的 Python 实例?

django - docker+gunicorn+nginx需要supervisord吗?

php - 启动用户态代理 : listen tcp 0. 0.0.0:3306 时出错:绑定(bind):地址已在使用中

python - Firebase 身份验证和 Django/Djangae

python - 在 python 中序列化一个 suds 对象

python - django 在生产中不运行特定的迁移(它跳过)