我无法在我的Docker容器中安装软件包,请告诉我如何解决。
警告:
警告:目录“/home/app/.cache/pip”或其父目录不属于当前用户或不可写。缓存已被禁用。请检查该目录的权限和所有者。如果使用sudo执行pip,则应使用sudo的-H标志。
错误:
警告:
警告:目录“/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.
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"]
容器内的命令:
pip install django-storages
pip install
,因为以这种方式进行的任何更改都将在容器退出时丢失。您可以将软件包添加到requirements.txt
中,重新构建镜像并重新创建容器吗? - David Mazerequirements.txt
文件中添加了该软件包,但我目前处于开发模式,因此每次安装任何软件包时重建Docker镜像并不是一个好方法。 - Zain Khan