警告:以“root”用户身份运行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"]