Ошибка установки Docker Django пакета подушек - PullRequest
0 голосов
/ 23 октября 2019

Я докерствую мои приложения django, вы знаете все, если вы используете поле изображения django, вам нужно использовать пакет Pillow, но в настоящее время мой докер устанавливает весь пакет и выдает ошибку при попытке установить pillow

my Dockerfile

# pull official base image
FROM python:3.7-alpine

# set work directory
WORKDIR /app

# set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
ENV DEBUG 0

# install psycopg2
RUN apk update \
    && apk add --virtual build-deps gcc python3-dev musl-dev \
    && apk add postgresql-dev \
    && pip install psycopg2 \
    && apk del build-deps

# install dependencies
COPY ./requirements.txt .
RUN pip install -r requirements.txt

# copy project
COPY . .

# collect static files
RUN python manage.py collectstatic --noinput

# add and run as non-root user
RUN adduser -D myuser
USER myuser

# run gunicorn
CMD gunicorn projectile.wsgi:application --bind 0.0.0.0:$PORT

и это requirements.txt file

Django==2.2.2
Pillow==5.0.0
dj-database-url==0.5.0
gunicorn==19.9.0
whitenoise==4.1.2
psycopg2==2.8.4

Я не понимаю, что с ним не так, почему Pilow не устанавливается, выдает ошибку,это ниже:

The headers or library files could not be found for zlib,
remote:     a required dependency when compiling Pillow from source.
remote:     
remote:     Please see the install instructions at:
remote:        https://pillow.readthedocs.io/en/latest/installation.html
remote:     
remote:     
remote:     ----------------------------------------
remote: ERROR: Command errored out with exit status 1: /usr/local/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-k4_gcdwn/Pillow/setup.py'"'"'; __file__='"'"'/tmp/pip-install-k4_gcdwn/Pillow/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-qgvai9fm/install-record.txt --single-version-externally-managed --compile Check the logs for full command output.

Может кто-нибудь помочь мне исправить эту ошибку?

Спасибо

1 Ответ

0 голосов
/ 23 октября 2019

Вы можете добавить zlib-dev в разделе apk add и установить там подушку. Например (объяснения в разделе комментариев):

RUN apk update \
    && apk add --virtual build-deps gcc python3-dev musl-dev zlib-dev postgresql-dev jpeg-dev \  # will be removed after dependent python packages are installed
    && apk add postgresql zlib jpeg \  # these packages won't be deleted from docker image
    && pip install psycopg2 Pillow==5.0.0 \  # Here I am installing these python packages which have dependencies on the libraries installed in build-deps, because later build-deps will be deleted
    && apk del build-deps  # for reducing the size of the Docker Image, we are removing the build-deps folder

# install dependencies
COPY ./requirements.txt .

RUN pip install -r requirements.txt
# Rest of the code
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...