From ec7fa6332dd2ed93fa90afe10e2c26e1fe920529 Mon Sep 17 00:00:00 2001 From: Hayden <64056131+hay-kot@users.noreply.github.com> Date: Sat, 3 Apr 2021 13:23:26 -0800 Subject: [PATCH] add pillow dependencies (#258) Co-authored-by: hay-kot --- Dockerfile | 29 +++++++++++++++++++++++++++-- depends/download-and-extract.sh | 12 ++++++++++++ depends/install_webp.sh | 12 ++++++++++++ docs/docs/overrides/api.html | 2 +- mealie/services/image/minify.py | 6 ++++-- 5 files changed, 56 insertions(+), 5 deletions(-) create mode 100644 depends/download-and-extract.sh create mode 100644 depends/install_webp.sh diff --git a/Dockerfile b/Dockerfile index be6483e10619..e3e13e558d2f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,14 +7,39 @@ RUN npm run build FROM python:3.9-alpine -RUN apk add --no-cache libxml2-dev libxslt-dev libxml2 caddy libffi-dev + +RUN apk add --no-cache libxml2-dev \ + libxslt-dev \ + libxml2 caddy \ + libffi-dev \ + python3 \ + python3-dev \ + openssl \ + bash \ + sudo \ + # freetype-dev \ + # fribidi-dev \ + # harfbuzz-dev \ + jpeg-dev \ + lcms2-dev \ + openjpeg-dev \ + # tcl-dev \ + # tiff-dev \ + # tk-dev \ + zlib-dev + +ADD depends /depends +RUN cd /depends \ + && chmod +x install_webp.sh \ + && chmod +x download-and-extract.sh \ + && ./install_webp.sh + ENV ENV True EXPOSE 80 WORKDIR /app/ COPY ./pyproject.toml /app/ - RUN apk add --update --no-cache --virtual .build-deps \ curl \ g++ \ diff --git a/depends/download-and-extract.sh b/depends/download-and-extract.sh new file mode 100644 index 000000000000..faa8b1ad124e --- /dev/null +++ b/depends/download-and-extract.sh @@ -0,0 +1,12 @@ +#!/bin/sh +# Usage: ./download-and-extract.sh something https://example.com/something.tar.gz + +archive=$1 +url=$2 + +if [ ! -f $archive.tar.gz ]; then + wget -O $archive.tar.gz $url +fi + +rm -r $archive +tar -xvzf $archive.tar.gz \ No newline at end of file diff --git a/depends/install_webp.sh b/depends/install_webp.sh new file mode 100644 index 000000000000..1c83eacc7799 --- /dev/null +++ b/depends/install_webp.sh @@ -0,0 +1,12 @@ +#!/bin/bash +# install webp + +archive=libwebp-1.2.0 + +./download-and-extract.sh $archive https://raw.githubusercontent.com/python-pillow/pillow-depends/master/$archive.tar.gz + +pushd $archive + +./configure --prefix=/usr --enable-libwebpmux --enable-libwebpdemux && make -j4 && sudo make -j4 install + +popd \ No newline at end of file diff --git a/docs/docs/overrides/api.html b/docs/docs/overrides/api.html index 7e2e2ebc5cbe..1228e3f773bb 100644 --- a/docs/docs/overrides/api.html +++ b/docs/docs/overrides/api.html @@ -14,7 +14,7 @@
diff --git a/mealie/services/image/minify.py b/mealie/services/image/minify.py index 418ae60247f5..35215cf08822 100644 --- a/mealie/services/image/minify.py +++ b/mealie/services/image/minify.py @@ -1,3 +1,4 @@ +import shutil from pathlib import Path from mealie.core.config import app_dirs @@ -23,8 +24,9 @@ def minify_image(image_file: Path, min_dest: Path, tiny_dest: Path): tiny_image = crop_center(img) tiny_image.save(tiny_dest, quality=70) - except UnidentifiedImageError: - pass + except: + shutil.copy(image_file, min_dest) + shutil.copy(image_file, tiny_dest) def crop_center(pil_img, crop_width=300, crop_height=300):