# builds of cryptography for raspberry pi (or better arm v7) fail for some FROM python:3.9-alpine3.15 #Install all dependencies. RUN apk add --no-cache postgresql-libs postgresql-client gettext zlib libjpeg libwebp libxml2-dev libxslt-dev py-cryptography openldap gcompat #Print all logs without buffering it. ENV PYTHONUNBUFFERED 1 #This port will be used by gunicorn. EXPOSE 8080 #Create app dir and install requirements. RUN mkdir /opt/recipes WORKDIR /opt/recipes COPY requirements.txt ./ RUN \ if [ `apk --print-arch` = "armv7" ]; then \ printf "[global]\nextra-index-url=https://www.piwheels.org/simple\n" > /etc/pip.conf ; \ fi RUN apk add --no-cache --virtual .build-deps gcc musl-dev zlib-dev jpeg-dev libwebp-dev python3-dev git && \ echo -n "INPUT ( libldap.so )" > /usr/lib/libldap_r.so && \ python -m venv venv && \ /opt/recipes/venv/bin/python -m pip install --upgrade pip && \ venv/bin/pip install wheel==0.37.1 && \ venv/bin/pip install -r requirements.txt --no-cache-dir --no-binary=Pillow && \ apk --purge del .build-deps #Copy project and execute it. COPY . ./ RUN chmod +x boot.sh ENTRYPOINT ["/opt/recipes/boot.sh"]