FROM ubuntu:jammy as builder SHELL ["/bin/bash", "-xo", "pipefail", "-c"] ENV LANG en_US.UTF-8 ARG TARGETARCH # Install dependencies RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive \ apt-get install -y --no-install-recommends \ python3-pip \ ca-certificates \ curl \ dirmngr \ fonts-noto-cjk \ gnupg \ libssl-dev \ libjpeg-turbo8 \ python3-watchdog \ python3-xlrd \ python3-xlwt \ xz-utils \ xfonts-base \ xfonts-75dpi \ libxrender1 \ libfontconfig1 \ libpng16-16 \ libx11-6 \ libxcb1 \ libxext6 \ libx11-xcb1 \ libxcomposite1 \ libxcursor1 \ libxdamage1 \ libxi6 \ libxrandr2 \ libxtst6 \ libglib2.0-0 \ libxfixes3 \ libxinerama1 \ libxss1 \ fontconfig \ build-essential \ python3-dev \ libjpeg-dev \ zlib1g-dev \ libpq-dev \ libxml2-dev \ libxslt1-dev \ libffi-dev \ gosu \ && rm -rf /var/lib/apt/lists/* # Install wkhtmltopdf RUN if [ -z "${TARGETARCH}" ]; then \ TARGETARCH="$(dpkg --print-architecture)"; \ fi; \ WKHTMLTOPDF_ARCH=${TARGETARCH} && \ case ${TARGETARCH} in \ "amd64") WKHTMLTOPDF_ARCH=amd64 && WKHTMLTOPDF_SHA=967390a759707337b46d1c02452e2bb6b2dc6d59 ;; \ "arm64") WKHTMLTOPDF_SHA=90f6e69896d51ef77339d3f3a20f8582bdf496cc ;; \ "ppc64le" | "ppc64el") WKHTMLTOPDF_ARCH=ppc64el && WKHTMLTOPDF_SHA=5312d7d34a25b321282929df82e3574319aed25c ;; \ esac \ && curl -o wkhtmltox.deb -sSL https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.jammy_${WKHTMLTOPDF_ARCH}.deb \ && echo ${WKHTMLTOPDF_SHA} wkhtmltox.deb | sha1sum -c - \ && apt-get install -y --no-install-recommends ./wkhtmltox.deb \ && rm -rf /var/lib/apt/lists/* wkhtmltox.deb # Install latest postgresql-client RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ jammy-pgdg main' > /etc/apt/sources.list.d/pgdg.list \ && GNUPGHOME="$(mktemp -d)" \ && export GNUPGHOME \ && repokey='B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8' \ && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${repokey}" \ && gpg --batch --armor --export "${repokey}" > /etc/apt/trusted.gpg.d/pgdg.gpg.asc \ && gpgconf --kill all \ && rm -rf "$GNUPGHOME" \ && apt-get update \ && apt-get install --no-install-recommends -y postgresql-client \ && rm -f /etc/apt/sources.list.d/pgdg.list \ && rm -rf /var/lib/apt/lists/* WORKDIR /install COPY requirements.txt ./ # Upgrade pip and setuptools RUN pip install --upgrade pip setuptools && \ pip install --no-cache-dir --prefix=/install -r ./requirements.txt