Permission Denied When Installing Packages Using Pip In Docker Container Django
Я не могу установить пакет внутри моего контейнера docker, пожалуйста, дайте мне знать, как я могу решить эту проблему.
Предупреждение:
ПРЕДУПРЕЖДЕНИЕ: Каталог '/home/app/.cache/pip' или его родительский каталог не принадлежит текущему пользователю или не доступен для записи. Кэш был отключен. Проверьте права доступа и владельца этого каталога. Если вы выполняете pip с помощью sudo, вам следует использовать флаг sudo -H.
error:
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
В моем случае я установил пакет, используя пользователя root, добавив -u 0
, что указывает docker на вход от имени пользователя root.
docker exec -u 0 -it mycontainer bash