运行 pip 作为 'root' 用户可能会导致 Dockerfile 中的权限损坏

Running pip as the 'root' user can result in broken permissions in Dockerfile

我有这个Dockerfile:

FROM python:3.8-slim

WORKDIR /app

COPY . .

RUN apt-get update
RUN apt-get install -y python3 python3-pip python3-venv

RUN pip freeze > requirements.txt
RUN pip install --no-cache-dir -r requirements.txt

CMD ["python3", "main.py"]

一切正常文件直到这一行:

RUN pip install --no-cache-dir -r requirements.txt

使用docker run --rm -it name bashpip install -r requirements.txt然后我发现了这个错误:

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: https://pip.pypa.io/warnings/venv

,我找到了解决方案(这对我不起作用),可以通过创建新用户来解决,但它似乎不是最佳解决方案。我该如何解决这个问题?

在这种情况下,问题出在图像版本上。使用这个 Dockerfile 我能够解决这个问题:

FROM python:3.9.3

WORKDIR /app

COPY requirements.txt .
RUN pip install -r requirements.txt

COPY . .

CMD ["python3", "main.py"]

PS。我真的不知道是不是因为这个,但这张图片和我电脑上的 python 版本是一样的。我可能会对依赖项产生影响。