Namespace
rqi14
Image / Tag
paperless-ngx-chn:sha-f82b51d
Content Digest
sha256:fa7b87d08fd0105a3ea511f956b96e16ba6493d86ff43454c3be90d1c799697d
Details
Created

2026-04-13 15:32:45 UTC

Size

489 MB

Content Digest
Labels
  • org.opencontainers.image.authors
    paperless-ngx team <[email protected]>
  • org.opencontainers.image.created
    2026-04-13T15:28:36.610Z
  • org.opencontainers.image.description
    paperless-ngx docker image repo with Chinese language support preinstalled
  • org.opencontainers.image.documentation
    https://docs.paperless-ngx.com/
  • org.opencontainers.image.licenses
    GPL-3.0
  • org.opencontainers.image.revision
    f82b51dbc1a7fff26c68056e010d5ccaf4147186
  • org.opencontainers.image.source
    https://github.com/rqi14/paperless-ngx-chn
  • org.opencontainers.image.title
    paperless-ngx-chn
  • org.opencontainers.image.url
    https://github.com/rqi14/paperless-ngx-chn
  • org.opencontainers.image.version
    latest

Environment
GPG_KEY

7169605F62C751356D054A26A821E680E5FA6305

LANG

C.UTF-8

PATH

/command:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

PNGX_CONTAINERIZED

1

PYTHONDONTWRITEBYTECODE

1

PYTHONUNBUFFERED

1

PYTHONWARNINGS

ignore:::django.http.response:517

PYTHON_SHA256

fb85a13414b028c49ba18bbd523c2d055a30b56b18b92ce454ea2c51edc656c4

PYTHON_VERSION

3.12.12

S6_BEHAVIOUR_IF_STAGE2_FAILS

2

S6_CMD_WAIT_FOR_SERVICES_MAXTIME

0

S6_VERBOSITY

1

UV_CACHE_DIR

/cache/uv/

UV_LINK_MODE

copy

UV_TOOL_BIN_DIR

/usr/local/bin


Layers

[#000] sha256:0e4bc2bd6656e6e004e3c749af70e5650bac2258243eb0949dea51cb8b7863db - 5.81% (28.4 MB)

[#001] sha256:490b9a1c25e472ab1cceab4ed6f3bd252006f7c6eea0ef7ba845c996adb6f302 - 0.25% (1.23 MB)

[#002] sha256:0674d14a155c94f13e648265aa3ba62410e1fe0387fef64cc608388e54232880 - 2.36% (11.5 MB)

[#003] sha256:b7ba6d2a1fc72f9587288b3b60221d1b07dae4f61a41360d2cc281fe7c007b3a - 0.0% (250 Bytes)

[#004] sha256:63dbeabf88c4cf9256758bb3e9732f6f3fd740bc72715f4cfa5bcca46de4944d - 4.3% (21 MB)

[#005] sha256:b207b8dc79ed5d7898bc839e35eebcb908ce919e0b4d923d60399a48df63bfc9 - 0.0% (130 Bytes)

[#006] sha256:757e7c185418f4afce6cae9507fdec5c2010a46bfb24c148a299d74d102330b3 - 0.67% (3.26 MB)

[#007] sha256:6332a17b7200c9d3e7983df45604555ceace86c0d4bf3ad7e94a6436e19949f6 - 0.0% (11.9 KB)

[#008] sha256:37f977db87f73c159c7ed18f182bc7d28a132ff631f9ff4457a7329f8fa20a44 - 34.05% (166 MB)

[#009] sha256:e6bb489ab02f0fc5987a2ccbc474cf769c16c08bce7564eeef2f1dd5bbef9f28 - 0.0% (150 Bytes)

[#010] sha256:9b1a3513937c109b4d98a789084f31beab6cb4cbc2337297a1547193250abfd5 - 0.04% (195 KB)

[#011] sha256:00befa321d86d7dd90aeaa6448863d99077efe4be812b6009ab3640d4691ab3c - 33.36% (163 MB)

[#012] sha256:da2dac7fba154e627a7b864467fa909c2ae71248bbb9c3fe3386a9eaeb6e1103 - 0.18% (897 KB)

[#013] sha256:789882549b6ab92b3c6e3980c80209c8136920fb294fd8919f09c570e7a4c98e - 9.1% (44.5 MB)

[#014] sha256:1b796c6ed75fba4c326f0e5480434c4c196eec4c96e2fecb04860c62007b11aa - 9.87% (48.3 MB)


History
2025-11-17 00:00:00 UTC (debuerreotype 0.16)

# debian.sh --arch 'amd64' out/ 'trixie' '@1763337600'

2025-11-18 05:49:42 UTC (buildkit.dockerfile.v0)

ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

2025-11-18 05:49:42 UTC (buildkit.dockerfile.v0)

ENV LANG=C.UTF-8

2025-11-18 05:49:42 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates netbase tzdata ; apt-get dist-clean # buildkit

2025-11-18 05:49:42 UTC (buildkit.dockerfile.v0)

ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305

2025-11-18 05:49:42 UTC (buildkit.dockerfile.v0)

ENV PYTHON_VERSION=3.12.12

2025-11-18 05:49:42 UTC (buildkit.dockerfile.v0)

ENV PYTHON_SHA256=fb85a13414b028c49ba18bbd523c2d055a30b56b18b92ce454ea2c51edc656c4

2025-11-18 05:58:20 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 $(test "${gnuArch%%-*}" != 'riscv64' && echo '--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 -rt dpkg-query --search | awk 'sub(":$", "", $1) { print $1 }' | sort -u | xargs -r apt-mark manual ; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; apt-get dist-clean; export PYTHONDONTWRITEBYTECODE=1; python3 --version; pip3 --version # buildkit

2025-11-18 05:58:20 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-11-18 05:58:20 UTC (buildkit.dockerfile.v0)

CMD ["python3"]

2025-12-03 01:16:48 UTC (buildkit.dockerfile.v0)

COPY /uv /uvx /usr/local/bin/ # buildkit

2025-12-03 01:16:48 UTC (buildkit.dockerfile.v0)

ENV UV_TOOL_BIN_DIR=/usr/local/bin

2025-12-03 01:16:48 UTC (buildkit.dockerfile.v0)

ENTRYPOINT []

2025-12-03 01:16:48 UTC (buildkit.dockerfile.v0)

CMD ["/usr/local/bin/uv"]

2026-04-13 15:28:51 UTC (buildkit.dockerfile.v0)

WORKDIR /usr/src/s6

2026-04-13 15:29:01 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

2026-04-13 15:29:01 UTC (buildkit.dockerfile.v0)

ARG TARGETARCH=amd64

2026-04-13 15:29:01 UTC (buildkit.dockerfile.v0)

ARG TARGETVARIANT=

2026-04-13 15:29:01 UTC (buildkit.dockerfile.v0)

ARG S6_OVERLAY_VERSION=3.2.1.0

2026-04-13 15:29:01 UTC (buildkit.dockerfile.v0)

ARG S6_BUILD_TIME_PKGS=curl xz-utils

2026-04-13 15:29:01 UTC (buildkit.dockerfile.v0)

RUN |4 TARGETARCH=amd64 TARGETVARIANT= S6_OVERLAY_VERSION=3.2.1.0 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

2026-04-13 15:29:01 UTC (buildkit.dockerfile.v0)

COPY ./docker/rootfs / # buildkit

2026-04-13 15:29:01 UTC (buildkit.dockerfile.v0)

LABEL org.opencontainers.image.authors=paperless-ngx team <[email protected]>

2026-04-13 15:29:01 UTC (buildkit.dockerfile.v0)

LABEL org.opencontainers.image.documentation=https://docs.paperless-ngx.com/

2026-04-13 15:29:01 UTC (buildkit.dockerfile.v0)

LABEL org.opencontainers.image.source=https://github.com/paperless-ngx/paperless-ngx

2026-04-13 15:29:01 UTC (buildkit.dockerfile.v0)

LABEL org.opencontainers.image.url=https://github.com/paperless-ngx/paperless-ngx

2026-04-13 15:29:01 UTC (buildkit.dockerfile.v0)

LABEL org.opencontainers.image.licenses=GPL-3.0-only

2026-04-13 15:29:01 UTC (buildkit.dockerfile.v0)

ARG DEBIAN_FRONTEND=noninteractive

2026-04-13 15:29:01 UTC (buildkit.dockerfile.v0)

ARG TARGETARCH=amd64

2026-04-13 15:29:01 UTC (buildkit.dockerfile.v0)

ARG JBIG2ENC_VERSION=0.30

2026-04-13 15:29:01 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/

2026-04-13 15:29:01 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 tesseract-ocr-chi-sim tesseract-ocr-chi-tra tesseract-ocr-chi-sim-vert tesseract-ocr-chi-tra-vert unpaper pngquant jbig2dec libxml2 libxslt1.1 qpdf file libmagic1 media-types zlib1g libzbar0 poppler-utils

2026-04-13 15:29:31 UTC (buildkit.dockerfile.v0)

RUN |7 TARGETARCH=amd64 TARGETVARIANT= S6_OVERLAY_VERSION=3.2.1.0 S6_BUILD_TIME_PKGS=curl xz-utils DEBIAN_FRONTEND=noninteractive JBIG2ENC_VERSION=0.30 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 tesseract-ocr-chi-sim tesseract-ocr-chi-tra tesseract-ocr-chi-sim-vert tesseract-ocr-chi-tra-vert 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 https://github.com/paperless-ngx/builder/releases/download/jbig2enc-trixie-v${JBIG2ENC_VERSION}/jbig2enc_${JBIG2ENC_VERSION}-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

2026-04-13 15:29:31 UTC (buildkit.dockerfile.v0)

WORKDIR /usr/src/paperless/src/

2026-04-13 15:29:31 UTC (buildkit.dockerfile.v0)

COPY --chown=1000:1000 pyproject.toml uv.lock /usr/src/paperless/src/ # buildkit

2026-04-13 15:29:31 UTC (buildkit.dockerfile.v0)

ARG BUILD_PACKAGES= build-essential default-libmysqlclient-dev pkg-config

2026-04-13 15:30:12 UTC (buildkit.dockerfile.v0)

RUN |8 TARGETARCH=amd64 TARGETVARIANT= S6_OVERLAY_VERSION=3.2.1.0 S6_BUILD_TIME_PKGS=curl xz-utils DEBIAN_FRONTEND=noninteractive JBIG2ENC_VERSION=0.30 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 tesseract-ocr-chi-sim tesseract-ocr-chi-tra tesseract-ocr-chi-sim-vert tesseract-ocr-chi-tra-vert 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

2026-04-13 15:30:13 UTC (buildkit.dockerfile.v0)

COPY --chown=1000:1000 ./src ./ # buildkit

2026-04-13 15:30:38 UTC (buildkit.dockerfile.v0)

COPY --chown=1000:1000 /src/src/documents/static/frontend/ ./documents/static/frontend/ # buildkit

2026-04-13 15:32:45 UTC (buildkit.dockerfile.v0)

RUN |8 TARGETARCH=amd64 TARGETVARIANT= S6_OVERLAY_VERSION=3.2.1.0 S6_BUILD_TIME_PKGS=curl xz-utils DEBIAN_FRONTEND=noninteractive JBIG2ENC_VERSION=0.30 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 tesseract-ocr-chi-sim tesseract-ocr-chi-tra tesseract-ocr-chi-sim-vert tesseract-ocr-chi-tra-vert 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 && /usr/local/bin/deduplicate.py --verbose /usr/src/paperless/static/ # buildkit

2026-04-13 15:32:45 UTC (buildkit.dockerfile.v0)

VOLUME [/usr/src/paperless/data /usr/src/paperless/media /usr/src/paperless/consume /usr/src/paperless/export]

2026-04-13 15:32:45 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["/init"]

2026-04-13 15:32:45 UTC (buildkit.dockerfile.v0)

EXPOSE [8000/tcp]

2026-04-13 15:32:45 UTC (buildkit.dockerfile.v0)

HEALTHCHECK &{["CMD" "curl" "-fs" "-S" "-L" "--max-time" "2" "http://localhost:8000"] "30s" "10s" "0s" "0s" '\x05'}

Danger Zone
Delete Tag

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.

Delete