2025-04-08 16:33:59 UTC
482 MB
7169605F62C751356D054A26A821E680E5FA6305
LANGC.UTF-8
PATH/command:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PNGX_CONTAINERIZED1
PYTHONDONTWRITEBYTECODE1
PYTHONUNBUFFERED1
PYTHONWARNINGSignore:::django.http.response:517
PYTHON_SHA2567220835d9f90b37c006e9842a8dff4580aaca4318674f947302b8d28f3f81112
PYTHON_VERSION3.12.9
S6_BEHAVIOUR_IF_STAGE2_FAILS2
S6_CMD_WAIT_FOR_SERVICES_MAXTIME0
S6_VERBOSITY1
UV_CACHE_DIR/cache/uv/
UV_LINK_MODEcopy
[#000] sha256:6e909acdb790c5a1989d9cfc795fda5a246ad6664bb27b5c688e2b734b2c5fad - 5.58% (26.9 MB)
[#001] sha256:0b564fcd72a23e125aa17f344431b8e2189a5b8f89e78953466669795e7f8089 - 0.69% (3.35 MB)
[#002] sha256:e4eb3ff0477a6c3c65761bad0d2aa2c1ce912cdcf883a37226f28e6e277126b6 - 2.7% (13 MB)
[#003] sha256:75c77ac11059535a2a5409b794c1bec09cac945ffe1dfd92215c68f2ed2d35d4 - 0.0% (249 Bytes)
[#004] sha256:0420a797cdedc883473cdd1b897e99ad79448a43732b3882c0338c13764d00e6 - 3.31% (16 MB)
[#005] sha256:8c595ea295873ffa819fab15e836966909bf222c0495d6f1a8ae20b74d217130 - 0.0% (131 Bytes)
[#006] sha256:3dcc112f521dfd6a8de28bb232e886efca81dd0bf0ed9b573a6512e484171b84 - 0.49% (2.36 MB)
[#007] sha256:3578b92cb35f17fc66f7dce9e7a883812c1e7fd09b6fc20f3bc08617daf99247 - 0.0% (9.58 KB)
[#008] sha256:77dcba8677827bbcf99f7425c8c874406ad5b45f2bedf16e65b926f2a258bdb9 - 32.01% (154 MB)
[#009] sha256:859abeed44f2fdd8a1b3aacbda29b97651a57acf18109f42716b79c3d59d85a3 - 0.0% (151 Bytes)
[#010] sha256:66b56bbf4899860716d36c46fe9bbcab54cb6b932f03892271b0c12b6234cfd0 - 0.03% (143 KB)
[#011] sha256:b39f184544b6fde6fd60ef8507499ce78938e82d904b375ae56d7c00e48aa177 - 30.11% (145 MB)
[#012] sha256:1b5e0af96ec18e25d8f14857ed514ddcf8e309274c032c4d6f8480649b03b75b - 0.16% (779 KB)
[#013] sha256:c0c44b3555165127dd1148f513eb4f4f14599c1a11acdb2c62efbc7ee174a725 - 8.54% (41.2 MB)
[#014] sha256:2cf5eb39341165ab388c2e8887f3ebe253a786c8bd949e771aaba210c088614f - 16.38% (79.1 MB)
# debian.sh --arch 'amd64' out/ 'bookworm' '@1742169600'
2025-02-04 21:54:55 UTC (buildkit.dockerfile.v0)ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2025-02-04 21:54:55 UTC (buildkit.dockerfile.v0)ENV LANG=C.UTF-8
2025-02-04 21:54:55 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates netbase tzdata ; rm -rf /var/lib/apt/lists/* # buildkit
2025-02-04 21:54:55 UTC (buildkit.dockerfile.v0)ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305
2025-02-04 21:54:55 UTC (buildkit.dockerfile.v0)ENV PYTHON_VERSION=3.12.9
2025-02-04 21:54:55 UTC (buildkit.dockerfile.v0)ENV PYTHON_SHA256=7220835d9f90b37c006e9842a8dff4580aaca4318674f947302b8d28f3f81112
2025-02-04 21:54:55 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends dpkg-dev gcc gnupg libbluetooth-dev libbz2-dev libc6-dev libdb-dev libffi-dev libgdbm-dev liblzma-dev libncursesw5-dev libreadline-dev libsqlite3-dev libssl-dev make tk-dev uuid-dev wget xz-utils zlib1g-dev ; wget -O python.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz"; echo "$PYTHON_SHA256 *python.tar.xz" | sha256sum -c -; wget -O python.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc"; GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$GPG_KEY"; gpg --batch --verify python.tar.xz.asc python.tar.xz; gpgconf --kill all; rm -rf "$GNUPGHOME" python.tar.xz.asc; mkdir -p /usr/src/python; tar --extract --directory /usr/src/python --strip-components=1 --file python.tar.xz; rm python.tar.xz; cd /usr/src/python; gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; ./configure --build="$gnuArch" --enable-loadable-sqlite-extensions --enable-optimizations --enable-option-checking=fatal --enable-shared --with-lto --with-ensurepip ; nproc="$(nproc)"; EXTRA_CFLAGS="$(dpkg-buildflags --get CFLAGS)"; LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"; LDFLAGS="${LDFLAGS:--Wl},--strip-all"; arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; case "$arch" in amd64|arm64) EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; ;; i386) ;; *) EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; ;; esac; make -j "$nproc" "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" "LDFLAGS=${LDFLAGS:-}" ; rm python; make -j "$nproc" "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" "LDFLAGS=${LDFLAGS:--Wl},-rpath='\$\$ORIGIN/../lib'" python ; make install; cd /; rm -rf /usr/src/python; find /usr/local -depth \( \( -type d -a \( -name test -o -name tests -o -name idle_test \) \) -o \( -type f -a \( -name '*.pyc' -o -name '*.pyo' -o -name 'libpython*.a' \) \) \) -exec rm -rf '{}' + ; ldconfig; apt-mark auto '.*' > /dev/null; apt-mark manual $savedAptMark; find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec ldd '{}' ';' | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' | sort -u | xargs -r dpkg-query --search | cut -d: -f1 | sort -u | xargs -r apt-mark manual ; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; export PYTHONDONTWRITEBYTECODE=1; python3 --version; pip3 --version # buildkit
2025-02-04 21:54:55 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c set -eux; for src in idle3 pip3 pydoc3 python3 python3-config; do dst="$(echo "$src" | tr -d 3)"; [ -s "/usr/local/bin/$src" ]; [ ! -e "/usr/local/bin/$dst" ]; ln -svT "$src" "/usr/local/bin/$dst"; done # buildkit
2025-02-04 21:54:55 UTC (buildkit.dockerfile.v0)CMD ["python3"]
2025-03-30 19:50:50 UTC (buildkit.dockerfile.v0)COPY /uv /uvx /usr/local/bin/ # buildkit
2025-03-30 19:50:50 UTC (buildkit.dockerfile.v0)ENTRYPOINT []
2025-03-30 19:50:50 UTC (buildkit.dockerfile.v0)CMD ["/usr/local/bin/uv"]
2025-04-02 19:02:34 UTC (buildkit.dockerfile.v0)WORKDIR /usr/src/s6
2025-04-02 19:02:42 UTC (buildkit.dockerfile.v0)ENV S6_BEHAVIOUR_IF_STAGE2_FAILS=2 S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 S6_VERBOSITY=1 PATH=/command:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2025-04-02 19:02:42 UTC (buildkit.dockerfile.v0)ARG TARGETARCH=amd64
2025-04-02 19:02:42 UTC (buildkit.dockerfile.v0)ARG TARGETVARIANT=
2025-04-02 19:02:42 UTC (buildkit.dockerfile.v0)ARG S6_OVERLAY_VERSION=3.2.0.2
2025-04-02 19:02:42 UTC (buildkit.dockerfile.v0)ARG S6_BUILD_TIME_PKGS=curl xz-utils
2025-04-02 19:02:42 UTC (buildkit.dockerfile.v0)RUN |4 TARGETARCH=amd64 TARGETVARIANT= S6_OVERLAY_VERSION=3.2.0.2 S6_BUILD_TIME_PKGS=curl xz-utils /bin/sh -c set -eux && echo "Installing build time packages" && apt-get update && apt-get install --yes --quiet --no-install-recommends ${S6_BUILD_TIME_PKGS} && echo "Determining arch" && S6_ARCH="" && if [ "${TARGETARCH}${TARGETVARIANT}" = "amd64" ]; then S6_ARCH="x86_64"; elif [ "${TARGETARCH}${TARGETVARIANT}" = "arm64" ]; then S6_ARCH="aarch64"; fi && if [ -z "${S6_ARCH}" ]; then { echo "Error: Not able to determine arch"; exit 1; }; fi && echo "Installing s6-overlay for ${S6_ARCH}" && curl --fail --silent --no-progress-meter --show-error --location --remote-name-all --parallel --parallel-max 4 "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz" "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz.sha256" "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-${S6_ARCH}.tar.xz" "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-${S6_ARCH}.tar.xz.sha256" && echo "Validating s6-archive checksums" && sha256sum --check ./*.sha256 && echo "Unpacking archives" && tar --directory / -Jxpf s6-overlay-noarch.tar.xz && tar --directory / -Jxpf s6-overlay-${S6_ARCH}.tar.xz && echo "Removing downloaded archives" && rm ./*.tar.xz && rm ./*.sha256 && echo "Cleaning up image" && apt-get --yes purge ${S6_BUILD_TIME_PKGS} && apt-get --yes autoremove --purge && rm -rf /var/lib/apt/lists/* # buildkit
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)COPY ./docker/rootfs / # buildkit
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)LABEL org.opencontainers.image.authors=paperless-ngx team <hello@paperless-ngx.com>
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)LABEL org.opencontainers.image.documentation=https://docs.paperless-ngx.com/
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)LABEL org.opencontainers.image.source=https://github.com/paperless-ngx/paperless-ngx
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)LABEL org.opencontainers.image.url=https://github.com/paperless-ngx/paperless-ngx
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)LABEL org.opencontainers.image.licenses=GPL-3.0-only
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)ARG DEBIAN_FRONTEND=noninteractive
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)ARG TARGETARCH=amd64
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)ARG JBIG2ENC_VERSION=0.30
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)ARG QPDF_VERSION=11.9.0
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)ARG GS_VERSION=10.03.1
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 PYTHONWARNINGS=ignore:::django.http.response:517 PNGX_CONTAINERIZED=1 UV_LINK_MODE=copy UV_CACHE_DIR=/cache/uv/
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)ARG RUNTIME_PACKAGES= curl gosu tzdata fonts-liberation gettext ghostscript gnupg icc-profiles-free imagemagick postgresql-client mariadb-client tesseract-ocr tesseract-ocr-eng tesseract-ocr-deu tesseract-ocr-fra tesseract-ocr-ita tesseract-ocr-spa unpaper pngquant jbig2dec libxml2 libxslt1.1 qpdf file libmagic1 media-types zlib1g libzbar0 poppler-utils
2025-04-02 19:03:14 UTC (buildkit.dockerfile.v0)RUN |9 TARGETARCH=amd64 TARGETVARIANT= S6_OVERLAY_VERSION=3.2.0.2 S6_BUILD_TIME_PKGS=curl xz-utils DEBIAN_FRONTEND=noninteractive JBIG2ENC_VERSION=0.30 QPDF_VERSION=11.9.0 GS_VERSION=10.03.1 RUNTIME_PACKAGES= curl gosu tzdata fonts-liberation gettext ghostscript gnupg icc-profiles-free imagemagick postgresql-client mariadb-client tesseract-ocr tesseract-ocr-eng tesseract-ocr-deu tesseract-ocr-fra tesseract-ocr-ita tesseract-ocr-spa unpaper pngquant jbig2dec libxml2 libxslt1.1 qpdf file libmagic1 media-types zlib1g libzbar0 poppler-utils /bin/sh -c set -eux echo "Installing system packages" && apt-get update && apt-get install --yes --quiet --no-install-recommends ${RUNTIME_PACKAGES} && echo "Installing pre-built updates" && curl --fail --silent --no-progress-meter --show-error --location --remote-name-all --parallel --parallel-max 4 https://github.com/paperless-ngx/builder/releases/download/qpdf-${QPDF_VERSION}/libqpdf29_${QPDF_VERSION}-1_${TARGETARCH}.deb https://github.com/paperless-ngx/builder/releases/download/qpdf-${QPDF_VERSION}/qpdf_${QPDF_VERSION}-1_${TARGETARCH}.deb https://github.com/paperless-ngx/builder/releases/download/ghostscript-${GS_VERSION}/libgs10_${GS_VERSION}.dfsg-1_${TARGETARCH}.deb https://github.com/paperless-ngx/builder/releases/download/ghostscript-${GS_VERSION}/ghostscript_${GS_VERSION}.dfsg-1_${TARGETARCH}.deb https://github.com/paperless-ngx/builder/releases/download/ghostscript-${GS_VERSION}/libgs10-common_${GS_VERSION}.dfsg-1_all.deb https://github.com/paperless-ngx/builder/releases/download/jbig2enc-${JBIG2ENC_VERSION}/jbig2enc_${JBIG2ENC_VERSION}-1_${TARGETARCH}.deb && echo "Installing qpdf ${QPDF_VERSION}" && dpkg --install ./libqpdf29_${QPDF_VERSION}-1_${TARGETARCH}.deb && dpkg --install ./qpdf_${QPDF_VERSION}-1_${TARGETARCH}.deb && echo "Installing Ghostscript ${GS_VERSION}" && dpkg --install ./libgs10-common_${GS_VERSION}.dfsg-1_all.deb && dpkg --install ./libgs10_${GS_VERSION}.dfsg-1_${TARGETARCH}.deb && dpkg --install ./ghostscript_${GS_VERSION}.dfsg-1_${TARGETARCH}.deb && echo "Installing jbig2enc" && dpkg --install ./jbig2enc_${JBIG2ENC_VERSION}-1_${TARGETARCH}.deb && echo "Configuring imagemagick" && cp /etc/ImageMagick-6/paperless-policy.xml /etc/ImageMagick-6/policy.xml && echo "Cleaning up image layer" && rm --force --verbose *.deb && rm --recursive --force --verbose /var/lib/apt/lists/* # buildkit
2025-04-02 19:03:14 UTC (buildkit.dockerfile.v0)WORKDIR /usr/src/paperless/src/
2025-04-02 19:03:14 UTC (buildkit.dockerfile.v0)COPY --chown=1000:1000 pyproject.toml uv.lock /usr/src/paperless/src/ # buildkit
2025-04-02 19:03:14 UTC (buildkit.dockerfile.v0)ARG BUILD_PACKAGES= build-essential default-libmysqlclient-dev pkg-config
2025-04-02 19:03:54 UTC (buildkit.dockerfile.v0)RUN |10 TARGETARCH=amd64 TARGETVARIANT= S6_OVERLAY_VERSION=3.2.0.2 S6_BUILD_TIME_PKGS=curl xz-utils DEBIAN_FRONTEND=noninteractive JBIG2ENC_VERSION=0.30 QPDF_VERSION=11.9.0 GS_VERSION=10.03.1 RUNTIME_PACKAGES= curl gosu tzdata fonts-liberation gettext ghostscript gnupg icc-profiles-free imagemagick postgresql-client mariadb-client tesseract-ocr tesseract-ocr-eng tesseract-ocr-deu tesseract-ocr-fra tesseract-ocr-ita tesseract-ocr-spa unpaper pngquant jbig2dec libxml2 libxslt1.1 qpdf file libmagic1 media-types zlib1g libzbar0 poppler-utils BUILD_PACKAGES= build-essential default-libmysqlclient-dev pkg-config /bin/sh -c set -eux && echo "Installing build system packages" && apt-get update && apt-get install --yes --quiet --no-install-recommends ${BUILD_PACKAGES} && echo "Installing Python requirements" && uv export --quiet --no-dev --all-extras --format requirements-txt --output-file requirements.txt && uv pip install --system --no-python-downloads --python-preference system --requirements requirements.txt && echo "Installing NLTK data" && python3 -W ignore::RuntimeWarning -m nltk.downloader -d "/usr/share/nltk_data" snowball_data && python3 -W ignore::RuntimeWarning -m nltk.downloader -d "/usr/share/nltk_data" stopwords && python3 -W ignore::RuntimeWarning -m nltk.downloader -d "/usr/share/nltk_data" punkt_tab && echo "Cleaning up image" && apt-get --yes purge ${BUILD_PACKAGES} && apt-get --yes autoremove --purge && apt-get clean --yes && rm --recursive --force --verbose *.whl && rm --recursive --force --verbose /var/lib/apt/lists/* && rm --recursive --force --verbose /tmp/* && rm --recursive --force --verbose /var/tmp/* && rm --recursive --force --verbose /var/cache/apt/archives/* && truncate --size 0 /var/log/*log # buildkit
2025-04-08 16:30:19 UTC (buildkit.dockerfile.v0)COPY --chown=1000:1000 ./src ./ # buildkit
2025-04-08 16:31:34 UTC (buildkit.dockerfile.v0)COPY --chown=1000:1000 /src/src/documents/static/frontend/ ./documents/static/frontend/ # buildkit
2025-04-08 16:33:59 UTC (buildkit.dockerfile.v0)RUN |10 TARGETARCH=amd64 TARGETVARIANT= S6_OVERLAY_VERSION=3.2.0.2 S6_BUILD_TIME_PKGS=curl xz-utils DEBIAN_FRONTEND=noninteractive JBIG2ENC_VERSION=0.30 QPDF_VERSION=11.9.0 GS_VERSION=10.03.1 RUNTIME_PACKAGES= curl gosu tzdata fonts-liberation gettext ghostscript gnupg icc-profiles-free imagemagick postgresql-client mariadb-client tesseract-ocr tesseract-ocr-eng tesseract-ocr-deu tesseract-ocr-fra tesseract-ocr-ita tesseract-ocr-spa unpaper pngquant jbig2dec libxml2 libxslt1.1 qpdf file libmagic1 media-types zlib1g libzbar0 poppler-utils BUILD_PACKAGES= build-essential default-libmysqlclient-dev pkg-config /bin/sh -c set -eux && sed -i '1s|^#!/usr/bin/env python3|#!/command/with-contenv python3|' manage.py && echo "Setting up user/group" && addgroup --gid 1000 paperless && useradd --uid 1000 --gid paperless --home-dir /usr/src/paperless paperless && echo "Creating volume directories" && mkdir --parents --verbose /usr/src/paperless/data && mkdir --parents --verbose /usr/src/paperless/media && mkdir --parents --verbose /usr/src/paperless/consume && mkdir --parents --verbose /usr/src/paperless/export && echo "Creating gnupg directory" && mkdir -m700 --verbose /usr/src/paperless/.gnupg && echo "Adjusting all permissions" && chown --from root:root --changes --recursive paperless:paperless /usr/src/paperless && echo "Collecting static files" && s6-setuidgid paperless python3 manage.py collectstatic --clear --no-input --link && s6-setuidgid paperless python3 manage.py compilemessages # buildkit
2025-04-08 16:33:59 UTC (buildkit.dockerfile.v0)VOLUME [/usr/src/paperless/data /usr/src/paperless/media /usr/src/paperless/consume /usr/src/paperless/export]
2025-04-08 16:33:59 UTC (buildkit.dockerfile.v0)ENTRYPOINT ["/init"]
2025-04-08 16:33:59 UTC (buildkit.dockerfile.v0)EXPOSE map[8000/tcp:{}]
2025-04-08 16:33:59 UTC (buildkit.dockerfile.v0)HEALTHCHECK &{["CMD" "curl" "-fs" "-S" "--max-time" "2" "http://localhost:8000"] "30s" "10s" "0s" "0s" '\x05'}
2025-04-08 16:33:28 UTC
383 MB
7169605F62C751356D054A26A821E680E5FA6305
LANGC.UTF-8
PATH/command:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PNGX_CONTAINERIZED1
PYTHONDONTWRITEBYTECODE1
PYTHONUNBUFFERED1
PYTHONWARNINGSignore:::django.http.response:517
PYTHON_SHA2567220835d9f90b37c006e9842a8dff4580aaca4318674f947302b8d28f3f81112
PYTHON_VERSION3.12.9
S6_BEHAVIOUR_IF_STAGE2_FAILS2
S6_CMD_WAIT_FOR_SERVICES_MAXTIME0
S6_VERBOSITY1
UV_CACHE_DIR/cache/uv/
UV_LINK_MODEcopy
[#000] sha256:d9b6365477446a79987b20560ae52637be6f54d6d2f801e16aaa0ca25dd0964b - 6.98% (26.7 MB)
[#001] sha256:3f529d1f5c642f942a2f18a72c6b14f378767cdf3f66131f04497701e8361712 - 0.83% (3.18 MB)
[#002] sha256:6c8de0b27f0d9f5cf579e907dcfbf973bef045401fadcaf904919baee9c911d7 - 3.38% (12.9 MB)
[#003] sha256:442a320f7d25402433ed0567151a9841e2000712cd94c22d2310b39e72899176 - 0.0% (250 Bytes)
[#004] sha256:921375c4bf4cfa8360e21395af1a15111aa490bd1ad70cfaef5ca66306f16ebc - 3.95% (15.1 MB)
[#005] sha256:b70b50ee7672ff344c53654116c990a8ac56d9a734dfee924a223232f89147c1 - 0.0% (130 Bytes)
[#006] sha256:7829c8f241836c8aa8324a4e98f6af80060572b0421b82038eae16531dc6d581 - 0.74% (2.82 MB)
[#007] sha256:3578b92cb35f17fc66f7dce9e7a883812c1e7fd09b6fc20f3bc08617daf99247 - 0.0% (9.58 KB)
[#008] sha256:9750027bcb7d4a83397ece0e1e476f328687a7342b0e35d463553203a4c13a63 - 36.9% (141 MB)
[#009] sha256:34ca8f64a25a2e3e94a1facb1e7c3da183ecb3a81b286643c054d9cd02ddf82c - 0.0% (151 Bytes)
[#010] sha256:b3293977563affd5e33320d3b1415e76c1a13997fad614dd6cb08ef983fc4d44 - 0.04% (143 KB)
[#011] sha256:d9943ac547cfeed6a4ff75388aa1c29aad7bc029a856aa2ee61f378302e8afd7 - 36.12% (138 MB)
[#012] sha256:a5ae2e15debd85548067af4ef2663db5c00a7fc3ec60888c490645fd0018dda2 - 0.2% (779 KB)
[#013] sha256:9398765d1a70612e6c7df6ce639d90cd7e7cf4a5974b2c2bcfc56f48d44571dc - 10.75% (41.2 MB)
[#014] sha256:38987c1c6acb47e1c554e4ca9a460d99422167919ba6f7619701f437f69e6f00 - 0.11% (436 KB)
# debian.sh --arch 'arm64' out/ 'bookworm' '@1742169600'
2025-02-04 21:54:55 UTC (buildkit.dockerfile.v0)ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2025-02-04 21:54:55 UTC (buildkit.dockerfile.v0)ENV LANG=C.UTF-8
2025-02-04 21:54:55 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates netbase tzdata ; rm -rf /var/lib/apt/lists/* # buildkit
2025-02-04 21:54:55 UTC (buildkit.dockerfile.v0)ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305
2025-02-04 21:54:55 UTC (buildkit.dockerfile.v0)ENV PYTHON_VERSION=3.12.9
2025-02-04 21:54:55 UTC (buildkit.dockerfile.v0)ENV PYTHON_SHA256=7220835d9f90b37c006e9842a8dff4580aaca4318674f947302b8d28f3f81112
2025-02-04 21:54:55 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends dpkg-dev gcc gnupg libbluetooth-dev libbz2-dev libc6-dev libdb-dev libffi-dev libgdbm-dev liblzma-dev libncursesw5-dev libreadline-dev libsqlite3-dev libssl-dev make tk-dev uuid-dev wget xz-utils zlib1g-dev ; wget -O python.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz"; echo "$PYTHON_SHA256 *python.tar.xz" | sha256sum -c -; wget -O python.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc"; GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$GPG_KEY"; gpg --batch --verify python.tar.xz.asc python.tar.xz; gpgconf --kill all; rm -rf "$GNUPGHOME" python.tar.xz.asc; mkdir -p /usr/src/python; tar --extract --directory /usr/src/python --strip-components=1 --file python.tar.xz; rm python.tar.xz; cd /usr/src/python; gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; ./configure --build="$gnuArch" --enable-loadable-sqlite-extensions --enable-optimizations --enable-option-checking=fatal --enable-shared --with-lto --with-ensurepip ; nproc="$(nproc)"; EXTRA_CFLAGS="$(dpkg-buildflags --get CFLAGS)"; LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"; LDFLAGS="${LDFLAGS:--Wl},--strip-all"; arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; case "$arch" in amd64|arm64) EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; ;; i386) ;; *) EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; ;; esac; make -j "$nproc" "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" "LDFLAGS=${LDFLAGS:-}" ; rm python; make -j "$nproc" "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" "LDFLAGS=${LDFLAGS:--Wl},-rpath='\$\$ORIGIN/../lib'" python ; make install; cd /; rm -rf /usr/src/python; find /usr/local -depth \( \( -type d -a \( -name test -o -name tests -o -name idle_test \) \) -o \( -type f -a \( -name '*.pyc' -o -name '*.pyo' -o -name 'libpython*.a' \) \) \) -exec rm -rf '{}' + ; ldconfig; apt-mark auto '.*' > /dev/null; apt-mark manual $savedAptMark; find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec ldd '{}' ';' | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' | sort -u | xargs -r dpkg-query --search | cut -d: -f1 | sort -u | xargs -r apt-mark manual ; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; export PYTHONDONTWRITEBYTECODE=1; python3 --version; pip3 --version # buildkit
2025-02-04 21:54:55 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c set -eux; for src in idle3 pip3 pydoc3 python3 python3-config; do dst="$(echo "$src" | tr -d 3)"; [ -s "/usr/local/bin/$src" ]; [ ! -e "/usr/local/bin/$dst" ]; ln -svT "$src" "/usr/local/bin/$dst"; done # buildkit
2025-02-04 21:54:55 UTC (buildkit.dockerfile.v0)CMD ["python3"]
2025-03-30 19:50:50 UTC (buildkit.dockerfile.v0)COPY /uv /uvx /usr/local/bin/ # buildkit
2025-03-30 19:50:50 UTC (buildkit.dockerfile.v0)ENTRYPOINT []
2025-03-30 19:50:50 UTC (buildkit.dockerfile.v0)CMD ["/usr/local/bin/uv"]
2025-04-02 19:02:35 UTC (buildkit.dockerfile.v0)WORKDIR /usr/src/s6
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)ENV S6_BEHAVIOUR_IF_STAGE2_FAILS=2 S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 S6_VERBOSITY=1 PATH=/command:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)ARG TARGETARCH=arm64
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)ARG TARGETVARIANT=
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)ARG S6_OVERLAY_VERSION=3.2.0.2
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)ARG S6_BUILD_TIME_PKGS=curl xz-utils
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)RUN |4 TARGETARCH=arm64 TARGETVARIANT= S6_OVERLAY_VERSION=3.2.0.2 S6_BUILD_TIME_PKGS=curl xz-utils /bin/sh -c set -eux && echo "Installing build time packages" && apt-get update && apt-get install --yes --quiet --no-install-recommends ${S6_BUILD_TIME_PKGS} && echo "Determining arch" && S6_ARCH="" && if [ "${TARGETARCH}${TARGETVARIANT}" = "amd64" ]; then S6_ARCH="x86_64"; elif [ "${TARGETARCH}${TARGETVARIANT}" = "arm64" ]; then S6_ARCH="aarch64"; fi && if [ -z "${S6_ARCH}" ]; then { echo "Error: Not able to determine arch"; exit 1; }; fi && echo "Installing s6-overlay for ${S6_ARCH}" && curl --fail --silent --no-progress-meter --show-error --location --remote-name-all --parallel --parallel-max 4 "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz" "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz.sha256" "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-${S6_ARCH}.tar.xz" "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-${S6_ARCH}.tar.xz.sha256" && echo "Validating s6-archive checksums" && sha256sum --check ./*.sha256 && echo "Unpacking archives" && tar --directory / -Jxpf s6-overlay-noarch.tar.xz && tar --directory / -Jxpf s6-overlay-${S6_ARCH}.tar.xz && echo "Removing downloaded archives" && rm ./*.tar.xz && rm ./*.sha256 && echo "Cleaning up image" && apt-get --yes purge ${S6_BUILD_TIME_PKGS} && apt-get --yes autoremove --purge && rm -rf /var/lib/apt/lists/* # buildkit
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)COPY ./docker/rootfs / # buildkit
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)LABEL org.opencontainers.image.authors=paperless-ngx team <hello@paperless-ngx.com>
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)LABEL org.opencontainers.image.documentation=https://docs.paperless-ngx.com/
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)LABEL org.opencontainers.image.source=https://github.com/paperless-ngx/paperless-ngx
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)LABEL org.opencontainers.image.url=https://github.com/paperless-ngx/paperless-ngx
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)LABEL org.opencontainers.image.licenses=GPL-3.0-only
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)ARG DEBIAN_FRONTEND=noninteractive
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)ARG TARGETARCH=arm64
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)ARG JBIG2ENC_VERSION=0.30
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)ARG QPDF_VERSION=11.9.0
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)ARG GS_VERSION=10.03.1
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 PYTHONWARNINGS=ignore:::django.http.response:517 PNGX_CONTAINERIZED=1 UV_LINK_MODE=copy UV_CACHE_DIR=/cache/uv/
2025-04-02 19:03:36 UTC (buildkit.dockerfile.v0)ARG RUNTIME_PACKAGES= curl gosu tzdata fonts-liberation gettext ghostscript gnupg icc-profiles-free imagemagick postgresql-client mariadb-client tesseract-ocr tesseract-ocr-eng tesseract-ocr-deu tesseract-ocr-fra tesseract-ocr-ita tesseract-ocr-spa unpaper pngquant jbig2dec libxml2 libxslt1.1 qpdf file libmagic1 media-types zlib1g libzbar0 poppler-utils
2025-04-02 19:08:06 UTC (buildkit.dockerfile.v0)RUN |9 TARGETARCH=arm64 TARGETVARIANT= S6_OVERLAY_VERSION=3.2.0.2 S6_BUILD_TIME_PKGS=curl xz-utils DEBIAN_FRONTEND=noninteractive JBIG2ENC_VERSION=0.30 QPDF_VERSION=11.9.0 GS_VERSION=10.03.1 RUNTIME_PACKAGES= curl gosu tzdata fonts-liberation gettext ghostscript gnupg icc-profiles-free imagemagick postgresql-client mariadb-client tesseract-ocr tesseract-ocr-eng tesseract-ocr-deu tesseract-ocr-fra tesseract-ocr-ita tesseract-ocr-spa unpaper pngquant jbig2dec libxml2 libxslt1.1 qpdf file libmagic1 media-types zlib1g libzbar0 poppler-utils /bin/sh -c set -eux echo "Installing system packages" && apt-get update && apt-get install --yes --quiet --no-install-recommends ${RUNTIME_PACKAGES} && echo "Installing pre-built updates" && curl --fail --silent --no-progress-meter --show-error --location --remote-name-all --parallel --parallel-max 4 https://github.com/paperless-ngx/builder/releases/download/qpdf-${QPDF_VERSION}/libqpdf29_${QPDF_VERSION}-1_${TARGETARCH}.deb https://github.com/paperless-ngx/builder/releases/download/qpdf-${QPDF_VERSION}/qpdf_${QPDF_VERSION}-1_${TARGETARCH}.deb https://github.com/paperless-ngx/builder/releases/download/ghostscript-${GS_VERSION}/libgs10_${GS_VERSION}.dfsg-1_${TARGETARCH}.deb https://github.com/paperless-ngx/builder/releases/download/ghostscript-${GS_VERSION}/ghostscript_${GS_VERSION}.dfsg-1_${TARGETARCH}.deb https://github.com/paperless-ngx/builder/releases/download/ghostscript-${GS_VERSION}/libgs10-common_${GS_VERSION}.dfsg-1_all.deb https://github.com/paperless-ngx/builder/releases/download/jbig2enc-${JBIG2ENC_VERSION}/jbig2enc_${JBIG2ENC_VERSION}-1_${TARGETARCH}.deb && echo "Installing qpdf ${QPDF_VERSION}" && dpkg --install ./libqpdf29_${QPDF_VERSION}-1_${TARGETARCH}.deb && dpkg --install ./qpdf_${QPDF_VERSION}-1_${TARGETARCH}.deb && echo "Installing Ghostscript ${GS_VERSION}" && dpkg --install ./libgs10-common_${GS_VERSION}.dfsg-1_all.deb && dpkg --install ./libgs10_${GS_VERSION}.dfsg-1_${TARGETARCH}.deb && dpkg --install ./ghostscript_${GS_VERSION}.dfsg-1_${TARGETARCH}.deb && echo "Installing jbig2enc" && dpkg --install ./jbig2enc_${JBIG2ENC_VERSION}-1_${TARGETARCH}.deb && echo "Configuring imagemagick" && cp /etc/ImageMagick-6/paperless-policy.xml /etc/ImageMagick-6/policy.xml && echo "Cleaning up image layer" && rm --force --verbose *.deb && rm --recursive --force --verbose /var/lib/apt/lists/* # buildkit
2025-04-02 19:08:06 UTC (buildkit.dockerfile.v0)WORKDIR /usr/src/paperless/src/
2025-04-02 19:08:06 UTC (buildkit.dockerfile.v0)COPY --chown=1000:1000 pyproject.toml uv.lock /usr/src/paperless/src/ # buildkit
2025-04-02 19:08:06 UTC (buildkit.dockerfile.v0)ARG BUILD_PACKAGES= build-essential default-libmysqlclient-dev pkg-config
2025-04-02 19:15:27 UTC (buildkit.dockerfile.v0)RUN |10 TARGETARCH=arm64 TARGETVARIANT= S6_OVERLAY_VERSION=3.2.0.2 S6_BUILD_TIME_PKGS=curl xz-utils DEBIAN_FRONTEND=noninteractive JBIG2ENC_VERSION=0.30 QPDF_VERSION=11.9.0 GS_VERSION=10.03.1 RUNTIME_PACKAGES= curl gosu tzdata fonts-liberation gettext ghostscript gnupg icc-profiles-free imagemagick postgresql-client mariadb-client tesseract-ocr tesseract-ocr-eng tesseract-ocr-deu tesseract-ocr-fra tesseract-ocr-ita tesseract-ocr-spa unpaper pngquant jbig2dec libxml2 libxslt1.1 qpdf file libmagic1 media-types zlib1g libzbar0 poppler-utils BUILD_PACKAGES= build-essential default-libmysqlclient-dev pkg-config /bin/sh -c set -eux && echo "Installing build system packages" && apt-get update && apt-get install --yes --quiet --no-install-recommends ${BUILD_PACKAGES} && echo "Installing Python requirements" && uv export --quiet --no-dev --all-extras --format requirements-txt --output-file requirements.txt && uv pip install --system --no-python-downloads --python-preference system --requirements requirements.txt && echo "Installing NLTK data" && python3 -W ignore::RuntimeWarning -m nltk.downloader -d "/usr/share/nltk_data" snowball_data && python3 -W ignore::RuntimeWarning -m nltk.downloader -d "/usr/share/nltk_data" stopwords && python3 -W ignore::RuntimeWarning -m nltk.downloader -d "/usr/share/nltk_data" punkt_tab && echo "Cleaning up image" && apt-get --yes purge ${BUILD_PACKAGES} && apt-get --yes autoremove --purge && apt-get clean --yes && rm --recursive --force --verbose *.whl && rm --recursive --force --verbose /var/lib/apt/lists/* && rm --recursive --force --verbose /tmp/* && rm --recursive --force --verbose /var/tmp/* && rm --recursive --force --verbose /var/cache/apt/archives/* && truncate --size 0 /var/log/*log # buildkit
2025-04-08 16:30:19 UTC (buildkit.dockerfile.v0)COPY --chown=1000:1000 ./src ./ # buildkit
2025-04-08 16:31:34 UTC (buildkit.dockerfile.v0)COPY --chown=1000:1000 /src/src/documents/static/frontend/ ./documents/static/frontend/ # buildkit
2025-04-08 16:33:28 UTC (buildkit.dockerfile.v0)RUN |10 TARGETARCH=arm64 TARGETVARIANT= S6_OVERLAY_VERSION=3.2.0.2 S6_BUILD_TIME_PKGS=curl xz-utils DEBIAN_FRONTEND=noninteractive JBIG2ENC_VERSION=0.30 QPDF_VERSION=11.9.0 GS_VERSION=10.03.1 RUNTIME_PACKAGES= curl gosu tzdata fonts-liberation gettext ghostscript gnupg icc-profiles-free imagemagick postgresql-client mariadb-client tesseract-ocr tesseract-ocr-eng tesseract-ocr-deu tesseract-ocr-fra tesseract-ocr-ita tesseract-ocr-spa unpaper pngquant jbig2dec libxml2 libxslt1.1 qpdf file libmagic1 media-types zlib1g libzbar0 poppler-utils BUILD_PACKAGES= build-essential default-libmysqlclient-dev pkg-config /bin/sh -c set -eux && sed -i '1s|^#!/usr/bin/env python3|#!/command/with-contenv python3|' manage.py && echo "Setting up user/group" && addgroup --gid 1000 paperless && useradd --uid 1000 --gid paperless --home-dir /usr/src/paperless paperless && echo "Creating volume directories" && mkdir --parents --verbose /usr/src/paperless/data && mkdir --parents --verbose /usr/src/paperless/media && mkdir --parents --verbose /usr/src/paperless/consume && mkdir --parents --verbose /usr/src/paperless/export && echo "Creating gnupg directory" && mkdir -m700 --verbose /usr/src/paperless/.gnupg && echo "Adjusting all permissions" && chown --from root:root --changes --recursive paperless:paperless /usr/src/paperless && echo "Collecting static files" && s6-setuidgid paperless python3 manage.py collectstatic --clear --no-input --link && s6-setuidgid paperless python3 manage.py compilemessages # buildkit
2025-04-08 16:33:28 UTC (buildkit.dockerfile.v0)VOLUME [/usr/src/paperless/data /usr/src/paperless/media /usr/src/paperless/consume /usr/src/paperless/export]
2025-04-08 16:33:28 UTC (buildkit.dockerfile.v0)ENTRYPOINT ["/init"]
2025-04-08 16:33:28 UTC (buildkit.dockerfile.v0)EXPOSE map[8000/tcp:{}]
2025-04-08 16:33:28 UTC (buildkit.dockerfile.v0)HEALTHCHECK &{["CMD" "curl" "-fs" "-S" "--max-time" "2" "http://localhost:8000"] "30s" "10s" "0s" "0s" '\x05'}
Please be careful as this will not just delete the reference but also the actual content!
For example when you have latest and v1.2.3 both pointing to the same image
the deletion of latest will also permanently remove v1.2.3.