{"architecture":"amd64","config":{"User":"appuser","Env":["PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","LANG=C.UTF-8","GPG_KEY=A035C8C19219BA821ECEA86B64E628F8D684696D","PYTHON_VERSION=3.11.15","PYTHON_SHA256=272179ddd9a2e41a0fc8e42e33dfbdca0b3711aa5abf372d3f2d51543d09b625","PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple","PIP_DEFAULT_TIMEOUT=120","PIP_RETRIES=5","PIP_DISABLE_PIP_VERSION_CHECK=1"],"Cmd":["python3"],"WorkingDir":"/app","Labels":{"com.docker.compose.project":"zm-rag-prod","com.docker.compose.service":"backend","com.docker.compose.version":"2.20.2"},"OnBuild":null},"created":"2026-05-13T10:38:21.439601876+08:00","history":[{"created":"2026-05-05T00:00:00Z","created_by":"# debian.sh --arch 'amd64' out/ 'trixie' '@1777939200'","comment":"debuerreotype 0.17"},{"created":"2026-05-08T20:01:41.95510187Z","created_by":"ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","comment":"buildkit.dockerfile.v0","empty_layer":true},{"created":"2026-05-08T20:01:41.95510187Z","created_by":"ENV LANG=C.UTF-8","comment":"buildkit.dockerfile.v0","empty_layer":true},{"created":"2026-05-08T20:01:41.95510187Z","created_by":"RUN /bin/sh -c set -eux; \tapt-get update; \tapt-get install -y --no-install-recommends \t\tca-certificates \t\tnetbase \t\ttzdata \t; \tapt-get dist-clean # buildkit","comment":"buildkit.dockerfile.v0"},{"created":"2026-05-08T20:01:41.95510187Z","created_by":"ENV GPG_KEY=A035C8C19219BA821ECEA86B64E628F8D684696D","comment":"buildkit.dockerfile.v0","empty_layer":true},{"created":"2026-05-08T20:01:41.95510187Z","created_by":"ENV PYTHON_VERSION=3.11.15","comment":"buildkit.dockerfile.v0","empty_layer":true},{"created":"2026-05-08T20:01:41.95510187Z","created_by":"ENV PYTHON_SHA256=272179ddd9a2e41a0fc8e42e33dfbdca0b3711aa5abf372d3f2d51543d09b625","comment":"buildkit.dockerfile.v0","empty_layer":true},{"created":"2026-05-08T20:09:58.698817223Z","created_by":"RUN /bin/sh -c set -eux; \t\tsavedAptMark=\"$(apt-mark showmanual)\"; \tapt-get update; \tapt-get install -y --no-install-recommends \t\tdpkg-dev \t\tgcc \t\tgnupg \t\tlibbluetooth-dev \t\tlibbz2-dev \t\tlibc6-dev \t\tlibdb-dev \t\tlibffi-dev \t\tlibgdbm-dev \t\tliblzma-dev \t\tlibncursesw5-dev \t\tlibreadline-dev \t\tlibsqlite3-dev \t\tlibssl-dev \t\tmake \t\ttk-dev \t\tuuid-dev \t\twget \t\txz-utils \t\tzlib1g-dev \t; \t\twget -O python.tar.xz \"https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz\"; \techo \"$PYTHON_SHA256 *python.tar.xz\" | sha256sum -c -; \twget -O python.tar.xz.asc \"https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc\"; \tGNUPGHOME=\"$(mktemp -d)\"; export GNUPGHOME; \tgpg --batch --keyserver hkps://keys.openpgp.org --recv-keys \"$GPG_KEY\"; \tgpg --batch --verify python.tar.xz.asc python.tar.xz; \tgpgconf --kill all; \trm -rf \"$GNUPGHOME\" python.tar.xz.asc; \tmkdir -p /usr/src/python; \ttar --extract --directory /usr/src/python --strip-components=1 --file python.tar.xz; \trm python.tar.xz; \t\tcd /usr/src/python; \tgnuArch=\"$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)\"; \t./configure \t\t--build=\"$gnuArch\" \t\t--enable-loadable-sqlite-extensions \t\t--enable-optimizations \t\t--enable-option-checking=fatal \t\t--enable-shared \t\t$(test \"${gnuArch%%-*}\" != 'riscv64' \u0026\u0026 echo '--with-lto') \t\t--with-ensurepip \t; \tnproc=\"$(nproc)\"; \tEXTRA_CFLAGS=\"$(dpkg-buildflags --get CFLAGS)\"; \tLDFLAGS=\"$(dpkg-buildflags --get LDFLAGS)\"; \tLDFLAGS=\"${LDFLAGS:-} -Wl,--strip-all\"; \tmake -j \"$nproc\" \t\t\"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}\" \t\t\"LDFLAGS=${LDFLAGS:-}\" \t; \trm python; \tmake -j \"$nproc\" \t\t\"EXTRA_CFLAGS=${EXTRA_CFLAGS:-}\" \t\t\"LDFLAGS=${LDFLAGS:-} -Wl,-rpath='\\$\\$ORIGIN/../lib'\" \t\tpython \t; \tmake install; \t\tcd /; \trm -rf /usr/src/python; \t\tfind /usr/local -depth \t\t\\( \t\t\t\\( -type d -a \\( -name test -o -name tests -o -name idle_test \\) \\) \t\t\t-o \\( -type f -a \\( -name '*.pyc' -o -name '*.pyo' -o -name 'libpython*.a' \\) \\) \t\t\\) -exec rm -rf '{}' + \t; \t\tldconfig; \t\tapt-mark auto '.*' \u003e /dev/null; \tapt-mark manual $savedAptMark; \tfind /usr/local -type f -executable -not \\( -name '*tkinter*' \\) -exec ldd '{}' ';' \t\t| awk '/=\u003e/ { so = $(NF-1); if (index(so, \"/usr/local/\") == 1) { next }; gsub(\"^/(usr/)?\", \"\", so); printf \"*%s\\n\", so }' \t\t| sort -u \t\t| xargs -rt dpkg-query --search \t\t| awk 'sub(\":$\", \"\", $1) { print $1 }' \t\t| sort -u \t\t| xargs -r apt-mark manual \t; \tapt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \tapt-get dist-clean; \t\texport PYTHONDONTWRITEBYTECODE=1; \tpython3 --version; \t\tpip3 install \t\t--disable-pip-version-check \t\t--no-cache-dir \t\t--no-compile \t\t'setuptools==79.0.1' \t\t'wheel\u003c0.46' \t; \tpip3 --version # buildkit","comment":"buildkit.dockerfile.v0"},{"created":"2026-05-08T20:09:58.829108366Z","created_by":"RUN /bin/sh -c set -eux; \tfor src in idle3 pip3 pydoc3 python3 python3-config; do \t\tdst=\"$(echo \"$src\" | tr -d 3)\"; \t\t[ -s \"/usr/local/bin/$src\" ]; \t\t[ ! -e \"/usr/local/bin/$dst\" ]; \t\tln -svT \"$src\" \"/usr/local/bin/$dst\"; \tdone # buildkit","comment":"buildkit.dockerfile.v0"},{"created":"2026-05-08T20:09:58.829108366Z","created_by":"CMD [\"python3\"]","comment":"buildkit.dockerfile.v0","empty_layer":true},{"created":"2026-05-12T17:25:25.315703181+08:00","created_by":"ENV PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple PIP_DEFAULT_TIMEOUT=120 PIP_RETRIES=5 PIP_DISABLE_PIP_VERSION_CHECK=1","comment":"buildkit.dockerfile.v0","empty_layer":true},{"created":"2026-05-12T17:25:25.315703181+08:00","created_by":"RUN /bin/sh -c apt-get update \u0026\u0026     apt-get install -y --no-install-recommends         gcc g++ libffi-dev curl \u0026\u0026     rm -rf /var/lib/apt/lists/* # buildkit","comment":"buildkit.dockerfile.v0"},{"created":"2026-05-12T17:25:26.599356449+08:00","created_by":"WORKDIR /app","comment":"buildkit.dockerfile.v0"},{"created":"2026-05-12T17:25:27.589112576+08:00","created_by":"COPY backend/requirements.txt /app/requirements.txt # buildkit","comment":"buildkit.dockerfile.v0"},{"created":"2026-05-12T17:41:51.162356176+08:00","created_by":"RUN /bin/sh -c pip install --no-compile -r requirements.txt \u0026\u0026     pip install --force-reinstall --no-deps opencv-python-headless # buildkit","comment":"buildkit.dockerfile.v0"},{"created":"2026-05-13T10:38:11.918126761+08:00","created_by":"COPY backend/ /app/ # buildkit","comment":"buildkit.dockerfile.v0"},{"created":"2026-05-13T10:38:13.336085412+08:00","created_by":"RUN /bin/sh -c mkdir -p /data/files # buildkit","comment":"buildkit.dockerfile.v0"},{"created":"2026-05-13T10:38:21.439601876+08:00","created_by":"RUN /bin/sh -c groupadd -r appuser \u0026\u0026 useradd -r -g appuser -d /app -s /sbin/nologin appuser \u0026\u0026     chown -R appuser:appuser /app /data/files # buildkit","comment":"buildkit.dockerfile.v0"},{"created":"2026-05-13T10:38:21.439601876+08:00","created_by":"USER appuser","comment":"buildkit.dockerfile.v0","empty_layer":true}],"os":"linux","rootfs":{"type":"layers","diff_ids":["sha256:79dd1f4c855cd061f687a994426634cf5f84c8ecdbc66c7a7d118e828dd93c99","sha256:2e53cb234c597e3f6a8f896df5efafd6ceca83645632661f2e32cd7144b43738","sha256:799edc77eb3d21542943122b97c5ba1e80c2a1eb3d222e23196717126398ef61","sha256:94e760ec30748f73d19bcb5d4da140b8dde956299eac18e3372d89236f56c995","sha256:0688c7c30bf161a68859715df7291a80ef8b5ac338fa8a58436e9a9bafb1f212","sha256:79c450cbf4d164240f36e02192b7f9ec7b26c1935956b7ca357ea100845a29f5","sha256:a407bffea93ecfe3c7027a0a66e44fd666e777d6cb6de03124e4f8304bf0af1c","sha256:c83a10a38528a3381a24e68b7f72e8555f23791a6a666a82c9cd46fe3f22f06a","sha256:fa7099810829321ebf6814a6192d97a51ef6968129c131f5cf11c2ee9d6d1514","sha256:c3afa5d879341f374239c0de16cc1a6d93ae201280959bc6fb0ce1cd3ce6bdb2","sha256:ffe1bd9f5ef9b2980703d6abe1d557d71eeb7bfe369f319d2dfb840e57a266c2"]}}