FROM python:3.8-alpine 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/ 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 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" ] CMD [ "log-verbose" ]