运行 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 bash
和pip 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 版本是一样的。我可能会对依赖项产生影响。
我有这个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 bash
和pip 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 版本是一样的。我可能会对依赖项产生影响。