【发布时间】:2017-04-16 02:13:40
【问题描述】:
我正在运行 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
(相关)Docker-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"
在运行时,python 要求之一(spacy)尝试在受限文件夹中存储和访问文件,从而导致错误:
PermissionError: [Errno 13] Permission denied:
'/usr/local/lib/python3.5/site-packages/spacy/data'
有没有办法可以给 dockeruser 足够的权限。或者,使用 virtualenv 运行它是否更明智,因为问题似乎是访问系统范围的 python 文件夹?
【问题讨论】:
标签: django ubuntu docker pip docker-compose