我正在docker-compose
汇集的Django与一些其他的服务,以下配置:泊坞窗的用户权限被拒绝在容器访问文件夹
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'
有没有一种方法可以让我给dockeruser足够的权限,这将工作。或者,用virtualenv运行这个问题似乎更容易理解,因为问题似乎是访问系统范围的python文件夹?