在 Docker 容器 Django 中使用 Pip 安装软件包时权限被拒绝

ZaI*_*hAn 4 python django ubuntu pip docker

我无法在我的 docker 容器中安装该软件包,请让我知道如何解决这个问题。

警告:

警告:当前用户不拥有或不可写入目录“/home/app/.cache/pip”或其父目录。缓存已被禁用。检查该目录的权限和所有者。如果使用 sudo 执行 pip,则应该使用 sudo 的 -H 标志。

错误:

ERROR: Could not install packages due to an OSError: [Errno 13] Permission denied: '/home/app'
Check the permissions.
Run Code Online (Sandbox Code Playgroud)

Dockerfile:

FROM python:3
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1

WORKDIR /app
EXPOSE 8000

COPY ./core/ /app/
COPY ./scripts /scripts

RUN pip install --upgrade pip
COPY requirements.txt /app/
RUN pip install -r requirements.txt && \
    adduser --disabled-password --no-create-home app && \
    mkdir -p /vol/web/static && \
    mkdir -p /vol/web/media && \
    chown -R app:app /vol && \
    chmod -R 755 /vol && \
    chmod -R +x /scripts

USER app

CMD ["/scripts/run.sh"]
Run Code Online (Sandbox Code Playgroud)

容器内的命令:

pip install django-storages
Run Code Online (Sandbox Code Playgroud)

ZaI*_*hAn 5

就我而言,我已经使用 root 用户安装了该软件包,添加了-u 0告诉 docker 以 root 用户身份进入的命令。

docker exec -u 0 -it mycontainer bash
Run Code Online (Sandbox Code Playgroud)