我正在使用Docker制作我的Python Django应用程序的简单图像。但是在构建容器的最后,它会抛出以下警告(我正在Ubuntu 20.04上构建它):
警告:以“root”用户身份运行pip可能会导致权限错误,并与系统软件包管理器产生冲突的行为。建议使用虚拟环境
如果我正在图像中安装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"]
npm
和其他工具也会给出错误/警告。不要在容器内以 root 身份运行,创建一个用户,在 Dockerfile 中使用该用户进行安装/构建/运行是良好的实践。 - JustinRUN pip ...
命令默认由容器的 root 用户运行,无论哪个主机系统用户调用了docker build ...
。这就是为什么被接受的答案在 Dockerfile 中添加了一个新用户的原因。@justin 表示,在任何情况下创建一个新的 Docker 用户都是最佳实践,这非常有趣,也许并不广为人知。 - user550701RUN
命令不以root身份运行,你需要在Dockerfile中添加一个用户。 - user550701