Подушка не устанавливается после удаления .temp-builds
Ошибка
ERRORS:
app_1 | core.Page.image: (fields.E210) Cannot use ImageField because Pillow is not installed.
Похоже, что Pillow определяется как не установленный в моем контейнере docker, если я удаляю .temp-builds после установки requirements.txt. Я говорю так, потому что если я удалю 'apk del .tmp-deps', ошибка исчезнет. Однако я хочу удалить .tmp-builds, потому что я узнал, что это лучшая практика, чтобы сделать контейнер docker как можно более компактным.
Dockerfile
RUN python -m venv /py && \
/py/bin/pip install --upgrade pip && \
apk add --update --no-cache postgresql-client && \
apk add --update --no-cache --virtual .tmp-deps \
build-base postgresql-dev musl-dev linux-headers \
python3-dev zlib-dev jpeg-dev gcc musl-dev && \
/py/bin/pip install -r /requirements.txt && \
apk del .tmp-deps
requirements.txt
django>=3.2.3,<3.3
psycopg2>=2.8.6,<2.9
uWSGI>=2.0.19.1,<2.1
djangorestframework >=3.12.4, <3.20.0
Pillow >= 8.4.0, <8.5.0
Любой указатель будет очень признателен.
Правильно. Посмотрев dockerfile, я увидел, что postgresql-client не находится в --virtual .tmp-deps. Это означает, что некоторые зависимости должны оставаться в контейнере для работы какого-то пакета (для меня это было неочевидно).
Отсюда я узнал, что мне нужно включить jpeg-dev в строку вне .tmp-deps.
Обновленный Dockerfile
RUN python -m venv /py && \
/py/bin/pip install --upgrade pip && \
apk add --update --no-cache postgresql-client jpeg-dev && \
apk add --update --no-cache --virtual .tmp-deps \
build-base postgresql-dev musl-dev linux-headers python3-dev gcc zlib-dev && \
/py/bin/pip install -r /requirements.txt && \
apk del .tmp-deps && \