Я бегу docker-compose
, чтобы собрать вместе Джанго с несколькими другими службами с помощью следующей конфигурации:Docker Разрешение отказано в доступе к папке в контейнере
Dockerfile:
FROM ubuntu:16.10
FROM python:3.5.0
ENV EXTRACTOR_SRC=.
ENV EXTRACTOR_SRVHOME=/srv
ENV EXTRACTOR_SRVPROJ=/srv/extractor_django
#Install package dependencies
RUN apt-get update && apt-get -y upgrade
RUN apt-get install -y python python-pip virtualenvwrapper
# Create application subdirectories
WORKDIR $EXTRACTOR_SRVHOME
RUN mkdir media static logs
VOLUME ["$EXTRACTOR_SRVHOME/media/", "$EXTRACTOR_SRVHOME/logs/"]
# Copy application source code to SRCDIR
COPY $EXTRACTOR_SRC $EXTRACTOR_SRVPROJ
# Install Python dependencies
RUN pip install -r $EXTRACTOR_SRVPROJ/requirements.txt
# create user
RUN adduser --disabled-password --gecos '' dockeruser
(соответствующая) Докер -compose.yml:
version: '2'
services:
# Django web server
web:
build:
context: .
dockerfile: Dockerfile
hostname: web
command: /srv/www/run_web.sh
volumes:
- .:/srv/www
ports:
- "8000:8000"
run_web.sh:
#!/bin/bash
set -o verbose
sleep 15
cd /srv/extractor_django
su -m dockeruser -c "python manage.py makemigrations"
su -m dockeruser -c "python manage.py migrate"
su -m dockeruser -c "python manage.py collectstatic --noinput"
# Start Gunicorn processes
echo Starting Gunicorn.
su -m dockeruser -c "gunicorn extractorService.wsgi:application \
--name extractor_django \
--bind 0.0.0.0:8000 \
--workers 10 \
--log-level=info"
Во время выполнения одного из требований питона (Spacy) пытается хранить и получать доступ к файлам в ограниченной папке вызывает ошибку:
PermissionError: [Errno 13] Permission denied:
'/usr/local/lib/python3.5/site-packages/spacy/data'
Есть ли способ, я могу предоставить докерузеру достаточные привилегии, которые будут работать. В качестве альтернативы было бы более разумно запускать это с помощью virtualenv, поскольку проблема, по-видимому, является доступом к общесистемным папкам python?