diff --git a/Dockerfile b/Dockerfile index e900edc..45a5f7c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,47 +1,21 @@ -FROM python:3.10-alpine +# Python image. +# - https://docs.docker.com/language/python/build-images/ +FROM python:3.10-slim-buster WORKDIR /usr/src/ -# setting the correct timezone requires "zdtata" -# numpy (dependency of matplotlib) requires "make automake gcc ..." -# source: https://stackoverflow.com/a/48349161/6334421 -# pillow (dependency of matplotlib) requires "zlib-dev jpeg-dev ..." -RUN apk update && \ - apk add \ - tzdata \ - make automake gcc g++ subversion python3-dev \ - zlib-dev jpeg-dev freetype-dev lcms2-dev libwebp-dev tcl-dev tk-dev harfbuzz-dev \ - fribidi-dev libimagequant-dev libxcb-dev && \ - rm -rf /var/cache/apk/* - -# source: https://serverfault.com/a/683651/537998 -ENV TZ=Europe/Berlin -RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone - -RUN python3 -m pip install --no-cache-dir --upgrade pip - -# LDFLAGS required for "pip install pillow" -# otherwise this would be necessary: -## RUN ln -s /usr/lib/x86_64-linux-gnu/libz.so /lib/ -## RUN ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /lib/ -# source: https://github.com/python-pillow/Pillow/issues/3103#issuecomment-382634946 -ENV LDFLAGS=-L/usr/lib/x86_64-linux-gnu/ +# Set timezone. +# - https://dev.to/0xbf/set-timezone-in-your-docker-image-d22 +# Official Debian and Ubuntu images automatically run apt-get clean, so explicit invocation is not required. +# - https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#run +RUN apt update && apt install tzdata -y +ENV TZ="Europe/Berlin" COPY requirements.txt ./ -RUN python3 -m pip install --no-cache-dir --upgrade -r requirements.txt -# -# if the above fails, try using the below instead -# -#RUN python3 -m pip install --no-cache-dir --upgrade requests -#RUN python3 -m pip install --no-cache-dir --upgrade setuptools -#RUN python3 -m pip install --no-cache-dir --upgrade numpy -#RUN python3 -m pip install --no-cache-dir --upgrade pillow -#RUN python3 -m pip install --no-cache-dir --upgrade matplotlib +RUN pip3 install --no-cache-dir -r requirements.txt COPY src/ ./ RUN chmod +x langfingaz/main.py -# unbuffered output option otherwise script sleeps before any output appears -# python -u -ENTRYPOINT [ "python", "./langfingaz/main.py" ] +ENTRYPOINT [ "python3", "./langfingaz/main.py" ] CMD [ "log-verbose" ]