sha256:36831df742fc586485d2ad866bb9fd6c9705143b88c11995e02bd9f8fd1d88c1
2026-10-26 09:47:24 UTC
873 MB
http://127.0.0.1:3000
COMMIT_SHAe6752af36295bc6d1f88304a82b55370310df589
CONSOLE_API_URLhttp://127.0.0.1:5001
CONSOLE_WEB_URLhttp://127.0.0.1:3000
DEPLOY_ENVPRODUCTION
FLASK_APPapp.py
GPG_KEY7169605F62C751356D054A26A821E680E5FA6305
LANGen_US.UTF-8
LC_ALLen_US.UTF-8
NLTK_DATA/usr/local/share/nltk_data
PATH/app/api/.venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PYTHONIOENCODINGutf-8
PYTHON_SHA2566020bd10aff3bf4821be16f088ebb1591beb7b811dcd8fab1da8f7c22a7b27e7
PYTHON_VERSION3.13.17
SERVICE_API_URLhttp://127.0.0.1:5001
TIKTOKEN_CACHE_DIR/app/api/.tiktoken_cache
TZUTC
UV_VERSION0.8.9
VIRTUAL_ENV/app/api/.venv
[#000] sha256:11422d7ca1a44390a32bd8d8d9dc5946b4d053b3bbd9507d682e35584ba84a26 - 3.08% (26.9 MB)
[#001] sha256:70e1fe648bab453e8570a90bce0d674dfdfe9707d1b8e9e823a76d0e91d44278 - 0.36% (3.19 MB)
[#002] sha256:a6a788508a7265428337143dd4f37091356d9122dfa8c289c3242b1413916fa5 - 1.38% (12 MB)
[#003] sha256:514f59c1209a1df965b3efaf7cc2ede57d0cbf21868236eb5c056abcb714ad41 - 0.0% (250 Bytes)
[#004] sha256:5b976ececa52c2205f2f8676bfd469452f4cfba37c0551de91bf83a5680d3fac - 0.0% (118 Bytes)
[#005] sha256:961e0c9954ab1a8096e5383cbd9130baa50374c4e04ea0358782e875797a7949 - 2.61% (22.8 MB)
[#006] sha256:bd9ddc54bea929a22b334e73e026d4136e5b73f5cc29942896c72e4ece69b13d - 0.0% (34 Bytes)
[#007] sha256:58ec52c3a4d1022fb6458e8dcd9faad5e14cc5584e823ee13fec02f2d9f50da5 - 0.0% (1.14 KB)
[#008] sha256:7995747d40bb9721c40eefde4c66ef6e41794c5750d0b2fd370bdcfc5a46da6b - 19.99% (175 MB)
[#009] sha256:bef036b44c3aeb2b84ec49cb66ca4f5efeb07dc2862072211e65e5d2c9e65633 - 67.94% (593 MB)
[#010] sha256:e46acce4f41482fc40dadf8d09f1fa0968090c0e282a6932e72c7c666979d0db - 1.64% (14.4 MB)
[#011] sha256:25f49d5052b7dbd2329883e9fec3e967010dbd66d2897479ece65165ac7690e7 - 0.14% (1.18 MB)
[#012] sha256:8b95632e6f1699431145778b871d118a86c4f7d77901c7681d6113ecb5bc6bf2 - 1.83% (16 MB)
[#013] sha256:85bb50c772b64b6e1ad04971a65d83cf58bb7b4f95385c54cdacf89b699af5fd - 1.02% (8.92 MB)
[#014] sha256:5a3435fc9e3de033a7f6b5a0ebd5d0bdca3005aecf35c3c3e32e9cc4fbd34016 - 0.0% (2.48 KB)
# debian.sh --arch 'amd64' out/ 'bookworm' '@1792531975'
2026-10-21 22:26:33 UTC (buildkit.dockerfile.v0)ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2026-10-21 22:26:33 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
2026-10-21 22:26:33 UTC (buildkit.dockerfile.v0)ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305
2026-10-21 22:26:33 UTC (buildkit.dockerfile.v0)ENV PYTHON_VERSION=3.13.17
2026-10-21 22:26:33 UTC (buildkit.dockerfile.v0)ENV PYTHON_SHA256=6020bd10aff3bf4821be16f088ebb1591beb7b811dcd8fab1da8f7c22a7b27e7
2026-10-21 22:36:48 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 g++ 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; rm -rf /var/lib/apt/lists/*; export PYTHONDONTWRITEBYTECODE=1; python3 --version; pip3 --version # buildkit
2026-10-21 22:36:48 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
2026-10-21 22:36:48 UTC (buildkit.dockerfile.v0)CMD ["python3"]
2026-10-22 01:15:58 UTC (buildkit.dockerfile.v0)WORKDIR /app/api
2026-10-22 01:16:02 UTC (buildkit.dockerfile.v0)ENV UV_VERSION=0.8.9
2026-10-22 01:16:02 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c pip install --no-cache-dir uv==${UV_VERSION} # buildkit
2026-10-22 01:16:02 UTC (buildkit.dockerfile.v0)ENV FLASK_APP=app.py
2026-10-22 01:16:02 UTC (buildkit.dockerfile.v0)ENV DEPLOY_ENV=PRODUCTION
2026-10-22 01:16:02 UTC (buildkit.dockerfile.v0)ENV CONSOLE_API_URL=http://127.0.0.1:5001
2026-10-22 01:16:02 UTC (buildkit.dockerfile.v0)ENV CONSOLE_WEB_URL=http://127.0.0.1:3000
2026-10-22 01:16:02 UTC (buildkit.dockerfile.v0)ENV SERVICE_API_URL=http://127.0.0.1:5001
2026-10-22 01:16:02 UTC (buildkit.dockerfile.v0)ENV APP_WEB_URL=http://127.0.0.1:3000
2026-10-22 01:16:02 UTC (buildkit.dockerfile.v0)EXPOSE map[5001/tcp:{}]
2026-10-22 01:16:02 UTC (buildkit.dockerfile.v0)ENV TZ=UTC
2026-10-22 01:16:02 UTC (buildkit.dockerfile.v0)ENV LANG=en_US.UTF-8
2026-10-22 01:16:02 UTC (buildkit.dockerfile.v0)ENV LC_ALL=en_US.UTF-8
2026-10-22 01:16:02 UTC (buildkit.dockerfile.v0)ENV PYTHONIOENCODING=utf-8
2026-10-22 01:16:02 UTC (buildkit.dockerfile.v0)WORKDIR /app/api
2026-10-22 01:16:02 UTC (buildkit.dockerfile.v0)ARG dify_uid=1001
2026-10-22 01:16:02 UTC (buildkit.dockerfile.v0)ARG NODE_PACKAGE_VERSION=24.22.1-1nodesource1
2026-10-22 01:16:02 UTC (buildkit.dockerfile.v0)ARG NODESOURCE_KEY_FPR=6F71F525282841EEDAF851B42F59B5F99B1BE0B4
2026-10-22 01:16:02 UTC (buildkit.dockerfile.v0)RUN |3 dify_uid=1001 NODE_PACKAGE_VERSION=24.22.1-1nodesource1 NODESOURCE_KEY_FPR=6F71F525282841EEDAF851B42F59B5F99B1BE0B4 /bin/sh -c groupadd -r -g ${dify_uid} dify && useradd -r -u ${dify_uid} -g ${dify_uid} -s /bin/bash dify && chown -R dify:dify /app # buildkit
2026-10-22 09:05:20 UTC (buildkit.dockerfile.v0)RUN |3 dify_uid=1001 NODE_PACKAGE_VERSION=24.22.1-1nodesource1 NODESOURCE_KEY_FPR=6F71F525282841EEDAF851B42F59B5F99B1BE0B4 /bin/sh -c NODE_MAJOR="${NODE_PACKAGE_VERSION%%.*}" && apt-get update && apt-get install -y --no-install-recommends ca-certificates curl gnupg && mkdir -p /etc/apt/keyrings && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key -o /tmp/nodesource.gpg && gpg --show-keys --with-colons /tmp/nodesource.gpg | awk -F: '/^fpr:/ {print $10}' | grep -Fx "${NODESOURCE_KEY_FPR}" && gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg /tmp/nodesource.gpg && rm -f /tmp/nodesource.gpg && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_${NODE_MAJOR}.x nodistro main" > /etc/apt/sources.list.d/nodesource.list && apt-get update && apt-get install -y --no-install-recommends nodejs=${NODE_PACKAGE_VERSION} libgmp-dev libmpfr-dev libmpc-dev expat libldap-2.5-0=2.5.13+dfsg-5 perl libsqlite3-0=3.40.1-2+deb12u2 zlib1g=1:1.2.13.dfsg-1 fonts-noto-cjk media-types libmagic1 poppler-utils && apt-get autoremove -y && rm -rf /var/lib/apt/lists/* # buildkit
2026-10-22 09:05:20 UTC (buildkit.dockerfile.v0)ENV VIRTUAL_ENV=/app/api/.venv
2026-10-26 09:47:15 UTC (buildkit.dockerfile.v0)COPY --chown=dify:dify /app/api/.venv /app/api/.venv # buildkit
2026-10-26 09:47:15 UTC (buildkit.dockerfile.v0)ENV PATH=/app/api/.venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2026-10-26 09:47:18 UTC (buildkit.dockerfile.v0)RUN |3 dify_uid=1001 NODE_PACKAGE_VERSION=24.22.1-1nodesource1 NODESOURCE_KEY_FPR=6F71F525282841EEDAF851B42F59B5F99B1BE0B4 /bin/sh -c mkdir -p /usr/local/share/nltk_data && NLTK_DATA=/usr/local/share/nltk_data python -m nltk.downloader punkt_tab averaged_perceptron_tagger_eng stopwords && NLTK_DATA=/usr/local/share/nltk_data python -c "import nltk; nltk.data.find('tokenizers/punkt_tab'); nltk.data.find('taggers/averaged_perceptron_tagger_eng'); nltk.data.find('corpora/stopwords')" && chmod -R 755 /usr/local/share/nltk_data # buildkit
2026-10-26 09:47:18 UTC (buildkit.dockerfile.v0)ENV TIKTOKEN_CACHE_DIR=/app/api/.tiktoken_cache
2026-10-26 09:47:20 UTC (buildkit.dockerfile.v0)RUN |3 dify_uid=1001 NODE_PACKAGE_VERSION=24.22.1-1nodesource1 NODESOURCE_KEY_FPR=6F71F525282841EEDAF851B42F59B5F99B1BE0B4 /bin/sh -c python -c "import tiktoken; tiktoken.encoding_for_model('gpt2')" && chown -R dify:dify ${TIKTOKEN_CACHE_DIR} # buildkit
2026-10-26 09:47:23 UTC (buildkit.dockerfile.v0)RUN |3 dify_uid=1001 NODE_PACKAGE_VERSION=24.22.1-1nodesource1 NODESOURCE_KEY_FPR=6F71F525282841EEDAF851B42F59B5F99B1BE0B4 /bin/sh -c python -c "from unstructured.nlp.tokenize import sent_tokenize; sent_tokenize('Warm up.')" && python -c "import spacy; spacy.load('en_core_web_sm')" # buildkit
2026-10-26 09:47:24 UTC (buildkit.dockerfile.v0)COPY --chown=dify:dify api /app/api/ # buildkit
2026-10-26 09:47:24 UTC (buildkit.dockerfile.v0)COPY --chown=dify:dify --chmod=755 api/docker/entrypoint.sh /entrypoint.sh # buildkit
2026-10-26 09:47:24 UTC (buildkit.dockerfile.v0)ARG COMMIT_SHA
2026-10-26 09:47:24 UTC (buildkit.dockerfile.v0)ENV COMMIT_SHA=e6752af36295bc6d1f88304a82b55370310df589
2026-10-26 09:47:24 UTC (buildkit.dockerfile.v0)ENV NLTK_DATA=/usr/local/share/nltk_data
2026-10-26 09:47:24 UTC (buildkit.dockerfile.v0)USER dify
2026-10-26 09:47:24 UTC (buildkit.dockerfile.v0)ENTRYPOINT ["/bin/bash" "/entrypoint.sh"]
sha256:98994219c952c7e174ee8f8ed383e3505b2e3d3846d0ea728bded96c8ad593c5
2026-10-26 09:46:53 UTC
850 MB
http://127.0.0.1:3000
COMMIT_SHAe6752af36295bc6d1f88304a82b55370310df589
CONSOLE_API_URLhttp://127.0.0.1:5001
CONSOLE_WEB_URLhttp://127.0.0.1:3000
DEPLOY_ENVPRODUCTION
FLASK_APPapp.py
GPG_KEY7169605F62C751356D054A26A821E680E5FA6305
LANGen_US.UTF-8
LC_ALLen_US.UTF-8
NLTK_DATA/usr/local/share/nltk_data
PATH/app/api/.venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PYTHONIOENCODINGutf-8
PYTHON_SHA2566020bd10aff3bf4821be16f088ebb1591beb7b811dcd8fab1da8f7c22a7b27e7
PYTHON_VERSION3.13.17
SERVICE_API_URLhttp://127.0.0.1:5001
TIKTOKEN_CACHE_DIR/app/api/.tiktoken_cache
TZUTC
UV_VERSION0.8.9
VIRTUAL_ENV/app/api/.venv
[#000] sha256:41b2195c355367079ebad200f9591fe3c2cb886c3b1e67abaaf2090dc11c04d9 - 3.16% (26.8 MB)
[#001] sha256:74311ce6e431a3e7ce535eb88fdc9ac983756027940c2c9d01dcb980a5d62a32 - 0.36% (3.03 MB)
[#002] sha256:3c6f9506977947727494f62309cbe3a0d9e001f43fc60b770f6c9e09b2ec55e3 - 1.4% (11.9 MB)
[#003] sha256:b4cfc76522894bed4c0d20a5d6cdbffde0b79c03c91f518c870db57a8923e71b - 0.0% (249 Bytes)
[#004] sha256:84366b04b52383f42125ab6d21a5479c0e9c2d412932cf5cfaec4acecc0e334c - 0.0% (117 Bytes)
[#005] sha256:c7ba8f0446ccefa3558073e6ff84985c74f87d8e2b3415aad0b6f937531a5048 - 2.55% (21.7 MB)
[#006] sha256:bd9ddc54bea929a22b334e73e026d4136e5b73f5cc29942896c72e4ece69b13d - 0.0% (34 Bytes)
[#007] sha256:53af52a3cb458495a0f8ca28632c586d7d5a0410e57f937ff89aeae9b24d38f3 - 0.0% (1.15 KB)
[#008] sha256:0d47010e9362b6218fb4e37a81a1de96466e673993da7fa9edea5d0c8ab5a3ae - 20.46% (174 MB)
[#009] sha256:7708be72ccc9b3562ea7498b6faac8a89b7e3c75a348f73b852760f3800104f0 - 67.3% (572 MB)
[#010] sha256:9d86444b481a6ff407f54591ab4a9e5636e8239ec543ec8467e6c9c9859095b7 - 1.69% (14.4 MB)
[#011] sha256:9d046756f0f7bd3affdc81c019cacf91ee99eba5f204bd418d754014e4540340 - 0.14% (1.18 MB)
[#012] sha256:60e8f9d269782d79c58fec65ff8fdd20e5d107399321ede5b63fc11e29cb6a69 - 1.88% (16 MB)
[#013] sha256:9f3595dea62667c5fe5a734a0ac82f40fb5d81c1bba155291562025796155155 - 1.05% (8.92 MB)
[#014] sha256:bf84d5d268f3318dd1fab4ea29e8b4395b71c4b737bb528cb956617173c09946 - 0.0% (2.48 KB)
# debian.sh --arch 'arm64' out/ 'bookworm' '@1792531975'
2026-10-21 22:35:08 UTC (buildkit.dockerfile.v0)ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2026-10-21 22:35:08 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
2026-10-21 22:35:08 UTC (buildkit.dockerfile.v0)ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305
2026-10-21 22:35:08 UTC (buildkit.dockerfile.v0)ENV PYTHON_VERSION=3.13.17
2026-10-21 22:35:08 UTC (buildkit.dockerfile.v0)ENV PYTHON_SHA256=6020bd10aff3bf4821be16f088ebb1591beb7b811dcd8fab1da8f7c22a7b27e7
2026-10-21 22:48:27 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 g++ 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; rm -rf /var/lib/apt/lists/*; export PYTHONDONTWRITEBYTECODE=1; python3 --version; pip3 --version # buildkit
2026-10-21 22:48:28 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
2026-10-21 22:48:28 UTC (buildkit.dockerfile.v0)CMD ["python3"]
2026-10-22 02:13:34 UTC (buildkit.dockerfile.v0)WORKDIR /app/api
2026-10-22 02:13:38 UTC (buildkit.dockerfile.v0)ENV UV_VERSION=0.8.9
2026-10-22 02:13:38 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c pip install --no-cache-dir uv==${UV_VERSION} # buildkit
2026-10-22 02:13:38 UTC (buildkit.dockerfile.v0)ENV FLASK_APP=app.py
2026-10-22 02:13:38 UTC (buildkit.dockerfile.v0)ENV DEPLOY_ENV=PRODUCTION
2026-10-22 02:13:38 UTC (buildkit.dockerfile.v0)ENV CONSOLE_API_URL=http://127.0.0.1:5001
2026-10-22 02:13:38 UTC (buildkit.dockerfile.v0)ENV CONSOLE_WEB_URL=http://127.0.0.1:3000
2026-10-22 02:13:38 UTC (buildkit.dockerfile.v0)ENV SERVICE_API_URL=http://127.0.0.1:5001
2026-10-22 02:13:38 UTC (buildkit.dockerfile.v0)ENV APP_WEB_URL=http://127.0.0.1:3000
2026-10-22 02:13:38 UTC (buildkit.dockerfile.v0)EXPOSE map[5001/tcp:{}]
2026-10-22 02:13:38 UTC (buildkit.dockerfile.v0)ENV TZ=UTC
2026-10-22 02:13:38 UTC (buildkit.dockerfile.v0)ENV LANG=en_US.UTF-8
2026-10-22 02:13:38 UTC (buildkit.dockerfile.v0)ENV LC_ALL=en_US.UTF-8
2026-10-22 02:13:38 UTC (buildkit.dockerfile.v0)ENV PYTHONIOENCODING=utf-8
2026-10-22 02:13:39 UTC (buildkit.dockerfile.v0)WORKDIR /app/api
2026-10-22 02:13:39 UTC (buildkit.dockerfile.v0)ARG dify_uid=1001
2026-10-22 02:13:39 UTC (buildkit.dockerfile.v0)ARG NODE_PACKAGE_VERSION=24.22.1-1nodesource1
2026-10-22 02:13:39 UTC (buildkit.dockerfile.v0)ARG NODESOURCE_KEY_FPR=6F71F525282841EEDAF851B42F59B5F99B1BE0B4
2026-10-22 02:13:39 UTC (buildkit.dockerfile.v0)RUN |3 dify_uid=1001 NODE_PACKAGE_VERSION=24.22.1-1nodesource1 NODESOURCE_KEY_FPR=6F71F525282841EEDAF851B42F59B5F99B1BE0B4 /bin/sh -c groupadd -r -g ${dify_uid} dify && useradd -r -u ${dify_uid} -g ${dify_uid} -s /bin/bash dify && chown -R dify:dify /app # buildkit
2026-10-22 09:05:20 UTC (buildkit.dockerfile.v0)RUN |3 dify_uid=1001 NODE_PACKAGE_VERSION=24.22.1-1nodesource1 NODESOURCE_KEY_FPR=6F71F525282841EEDAF851B42F59B5F99B1BE0B4 /bin/sh -c NODE_MAJOR="${NODE_PACKAGE_VERSION%%.*}" && apt-get update && apt-get install -y --no-install-recommends ca-certificates curl gnupg && mkdir -p /etc/apt/keyrings && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key -o /tmp/nodesource.gpg && gpg --show-keys --with-colons /tmp/nodesource.gpg | awk -F: '/^fpr:/ {print $10}' | grep -Fx "${NODESOURCE_KEY_FPR}" && gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg /tmp/nodesource.gpg && rm -f /tmp/nodesource.gpg && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_${NODE_MAJOR}.x nodistro main" > /etc/apt/sources.list.d/nodesource.list && apt-get update && apt-get install -y --no-install-recommends nodejs=${NODE_PACKAGE_VERSION} libgmp-dev libmpfr-dev libmpc-dev expat libldap-2.5-0=2.5.13+dfsg-5 perl libsqlite3-0=3.40.1-2+deb12u2 zlib1g=1:1.2.13.dfsg-1 fonts-noto-cjk media-types libmagic1 poppler-utils && apt-get autoremove -y && rm -rf /var/lib/apt/lists/* # buildkit
2026-10-22 09:05:20 UTC (buildkit.dockerfile.v0)ENV VIRTUAL_ENV=/app/api/.venv
2026-10-26 09:46:44 UTC (buildkit.dockerfile.v0)COPY --chown=dify:dify /app/api/.venv /app/api/.venv # buildkit
2026-10-26 09:46:44 UTC (buildkit.dockerfile.v0)ENV PATH=/app/api/.venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2026-10-26 09:46:47 UTC (buildkit.dockerfile.v0)RUN |3 dify_uid=1001 NODE_PACKAGE_VERSION=24.22.1-1nodesource1 NODESOURCE_KEY_FPR=6F71F525282841EEDAF851B42F59B5F99B1BE0B4 /bin/sh -c mkdir -p /usr/local/share/nltk_data && NLTK_DATA=/usr/local/share/nltk_data python -m nltk.downloader punkt_tab averaged_perceptron_tagger_eng stopwords && NLTK_DATA=/usr/local/share/nltk_data python -c "import nltk; nltk.data.find('tokenizers/punkt_tab'); nltk.data.find('taggers/averaged_perceptron_tagger_eng'); nltk.data.find('corpora/stopwords')" && chmod -R 755 /usr/local/share/nltk_data # buildkit
2026-10-26 09:46:47 UTC (buildkit.dockerfile.v0)ENV TIKTOKEN_CACHE_DIR=/app/api/.tiktoken_cache
2026-10-26 09:46:48 UTC (buildkit.dockerfile.v0)RUN |3 dify_uid=1001 NODE_PACKAGE_VERSION=24.22.1-1nodesource1 NODESOURCE_KEY_FPR=6F71F525282841EEDAF851B42F59B5F99B1BE0B4 /bin/sh -c python -c "import tiktoken; tiktoken.encoding_for_model('gpt2')" && chown -R dify:dify ${TIKTOKEN_CACHE_DIR} # buildkit
2026-10-26 09:46:52 UTC (buildkit.dockerfile.v0)RUN |3 dify_uid=1001 NODE_PACKAGE_VERSION=24.22.1-1nodesource1 NODESOURCE_KEY_FPR=6F71F525282841EEDAF851B42F59B5F99B1BE0B4 /bin/sh -c python -c "from unstructured.nlp.tokenize import sent_tokenize; sent_tokenize('Warm up.')" && python -c "import spacy; spacy.load('en_core_web_sm')" # buildkit
2026-10-26 09:46:52 UTC (buildkit.dockerfile.v0)COPY --chown=dify:dify api /app/api/ # buildkit
2026-10-26 09:46:53 UTC (buildkit.dockerfile.v0)COPY --chown=dify:dify --chmod=755 api/docker/entrypoint.sh /entrypoint.sh # buildkit
2026-10-26 09:46:53 UTC (buildkit.dockerfile.v0)ARG COMMIT_SHA
2026-10-26 09:46:53 UTC (buildkit.dockerfile.v0)ENV COMMIT_SHA=e6752af36295bc6d1f88304a82b55370310df589
2026-10-26 09:46:53 UTC (buildkit.dockerfile.v0)ENV NLTK_DATA=/usr/local/share/nltk_data
2026-10-26 09:46:53 UTC (buildkit.dockerfile.v0)USER dify
2026-10-26 09:46:53 UTC (buildkit.dockerfile.v0)ENTRYPOINT ["/bin/bash" "/entrypoint.sh"]
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.