2026-01-19 10:17:33 UTC
836 MB
http://127.0.0.1:3000
COMMIT_SHAfb28f03155a13cfbf36210286f626b4bb39e764b
CONSOLE_API_URLhttp://127.0.0.1:5001
CONSOLE_WEB_URLhttp://127.0.0.1:3000
DEPLOY_ENVPRODUCTION
EDITIONSELF_HOSTED
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_SHA256fb85a13414b028c49ba18bbd523c2d055a30b56b18b92ce454ea2c51edc656c4
PYTHON_VERSION3.12.12
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:c02d17997ce3d2c82e082235ea0b5152d06ee659c4e2fabcf1e0079312f1bcde - 3.22% (26.9 MB)
[#001] sha256:249775a55ac88b6cd966b6091f6385a5441764203f83d7f90c63e210b15ac370 - 0.4% (3.35 MB)
[#002] sha256:a6608f38bf8f12e05aafc698770f5f029485361be2d985ab1af2ddc516279ee6 - 1.56% (13 MB)
[#003] sha256:08a6925e2259fcb4a2bc24d31b2a62cdd24f2fee20ba0e4241ac37cacf1ef5cb - 0.0% (249 Bytes)
[#004] sha256:2f47a81a617e60980d98b483ce7f657075ed096b2db2052720c07fb13c602df3 - 0.0% (110 Bytes)
[#005] sha256:3e3a5b0f1ef3423bce618fd9a167b867cd38c2d1d673144a18d665f37883a269 - 2.64% (22.1 MB)
[#006] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)
[#007] sha256:55641cf0efd6dbfa299af4154f0aa1a071087ec2330d5c13c774321b306562dc - 0.0% (1.11 KB)
[#008] sha256:38d4fc0807ff03bc46ab2e2532d87a985007d225afe7fcf903a45ec52fe3872d - 18.53% (155 MB)
[#009] sha256:c3425280c4fafe9dff37c92bacc41d64196186e4d0a32214cbb3d96077b68729 - 65.82% (551 MB)
[#010] sha256:7970cef4e6bda8cdbc4a5b5609d7ca6a537f14a39f357e2479d3a248a29c16cb - 5.4% (45.2 MB)
[#011] sha256:6448b130653b6f4e6dae029bd0848e3a312e4a9d850d51853278af68cbf67b51 - 0.13% (1.07 MB)
[#012] sha256:df0bd98d2fc1d181bec63e88120ca1c739324a206a359a97751f945cf3129c01 - 2.31% (19.3 MB)
[#013] sha256:00e16a0c91630050643f58a55c3334b62dc0d322c127582d80322f51923e3d4b - 0.0% (1.87 KB)
# debian.sh --arch 'amd64' out/ 'bookworm' '@1768176000'
2026-01-13 03:06:39 UTC (buildkit.dockerfile.v0)ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2026-01-13 03:06:39 UTC (buildkit.dockerfile.v0)ENV LANG=C.UTF-8
2026-01-13 03:06:39 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-01-13 03:06:39 UTC (buildkit.dockerfile.v0)ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305
2026-01-13 03:06:39 UTC (buildkit.dockerfile.v0)ENV PYTHON_VERSION=3.12.12
2026-01-13 03:06:39 UTC (buildkit.dockerfile.v0)ENV PYTHON_SHA256=fb85a13414b028c49ba18bbd523c2d055a30b56b18b92ce454ea2c51edc656c4
2026-01-13 03:15:56 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; rm -rf /var/lib/apt/lists/*; export PYTHONDONTWRITEBYTECODE=1; python3 --version; pip3 --version # buildkit
2026-01-13 03:15:56 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-01-13 03:15:56 UTC (buildkit.dockerfile.v0)CMD ["python3"]
2026-01-16 06:29:26 UTC (buildkit.dockerfile.v0)WORKDIR /app/api
2026-01-16 06:29:28 UTC (buildkit.dockerfile.v0)ENV UV_VERSION=0.8.9
2026-01-16 06:29:28 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c pip install --no-cache-dir uv==${UV_VERSION} # buildkit
2026-01-16 06:29:28 UTC (buildkit.dockerfile.v0)ENV FLASK_APP=app.py
2026-01-16 06:29:28 UTC (buildkit.dockerfile.v0)ENV EDITION=SELF_HOSTED
2026-01-16 06:29:28 UTC (buildkit.dockerfile.v0)ENV DEPLOY_ENV=PRODUCTION
2026-01-16 06:29:28 UTC (buildkit.dockerfile.v0)ENV CONSOLE_API_URL=http://127.0.0.1:5001
2026-01-16 06:29:28 UTC (buildkit.dockerfile.v0)ENV CONSOLE_WEB_URL=http://127.0.0.1:3000
2026-01-16 06:29:28 UTC (buildkit.dockerfile.v0)ENV SERVICE_API_URL=http://127.0.0.1:5001
2026-01-16 06:29:28 UTC (buildkit.dockerfile.v0)ENV APP_WEB_URL=http://127.0.0.1:3000
2026-01-16 06:29:28 UTC (buildkit.dockerfile.v0)EXPOSE [5001/tcp]
2026-01-16 06:29:28 UTC (buildkit.dockerfile.v0)ENV TZ=UTC
2026-01-16 06:29:28 UTC (buildkit.dockerfile.v0)ENV LANG=en_US.UTF-8
2026-01-16 06:29:28 UTC (buildkit.dockerfile.v0)ENV LC_ALL=en_US.UTF-8
2026-01-16 06:29:28 UTC (buildkit.dockerfile.v0)ENV PYTHONIOENCODING=utf-8
2026-01-16 06:29:28 UTC (buildkit.dockerfile.v0)WORKDIR /app/api
2026-01-16 06:29:28 UTC (buildkit.dockerfile.v0)ARG dify_uid=1001
2026-01-16 06:29:28 UTC (buildkit.dockerfile.v0)ARG NODE_MAJOR=22
2026-01-16 06:29:28 UTC (buildkit.dockerfile.v0)ARG NODE_PACKAGE_VERSION=22.21.0-1nodesource1
2026-01-16 06:29:28 UTC (buildkit.dockerfile.v0)ARG NODESOURCE_KEY_FPR=6F71F525282841EEDAF851B42F59B5F99B1BE0B4
2026-01-16 09:51:16 UTC (buildkit.dockerfile.v0)RUN |4 dify_uid=1001 NODE_MAJOR=22 NODE_PACKAGE_VERSION=22.21.0-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-01-16 09:51:29 UTC (buildkit.dockerfile.v0)RUN |4 dify_uid=1001 NODE_MAJOR=22 NODE_PACKAGE_VERSION=22.21.0-1nodesource1 NODESOURCE_KEY_FPR=6F71F525282841EEDAF851B42F59B5F99B1BE0B4 /bin/sh -c 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 && apt-get autoremove -y && rm -rf /var/lib/apt/lists/* # buildkit
2026-01-16 09:51:29 UTC (buildkit.dockerfile.v0)ENV VIRTUAL_ENV=/app/api/.venv
2026-01-19 10:17:28 UTC (buildkit.dockerfile.v0)COPY --chown=dify:dify /app/api/.venv /app/api/.venv # buildkit
2026-01-19 10:17:28 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-01-19 10:17:31 UTC (buildkit.dockerfile.v0)RUN |4 dify_uid=1001 NODE_MAJOR=22 NODE_PACKAGE_VERSION=22.21.0-1nodesource1 NODESOURCE_KEY_FPR=6F71F525282841EEDAF851B42F59B5F99B1BE0B4 /bin/sh -c mkdir -p /usr/local/share/nltk_data && NLTK_DATA=/usr/local/share/nltk_data python -c "import nltk; from unstructured.nlp.tokenize import download_nltk_packages; nltk.download('punkt'); nltk.download('averaged_perceptron_tagger'); nltk.download('stopwords'); download_nltk_packages()" && chmod -R 755 /usr/local/share/nltk_data # buildkit
2026-01-19 10:17:31 UTC (buildkit.dockerfile.v0)ENV TIKTOKEN_CACHE_DIR=/app/api/.tiktoken_cache
2026-01-19 10:17:32 UTC (buildkit.dockerfile.v0)RUN |4 dify_uid=1001 NODE_MAJOR=22 NODE_PACKAGE_VERSION=22.21.0-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-01-19 10:17:33 UTC (buildkit.dockerfile.v0)COPY --chown=dify:dify . /app/api/ # buildkit
2026-01-19 10:17:33 UTC (buildkit.dockerfile.v0)COPY --chown=dify:dify --chmod=755 docker/entrypoint.sh /entrypoint.sh # buildkit
2026-01-19 10:17:33 UTC (buildkit.dockerfile.v0)ARG COMMIT_SHA=fb28f03155a13cfbf36210286f626b4bb39e764b
2026-01-19 10:17:33 UTC (buildkit.dockerfile.v0)ENV COMMIT_SHA=fb28f03155a13cfbf36210286f626b4bb39e764b
2026-01-19 10:17:33 UTC (buildkit.dockerfile.v0)ENV NLTK_DATA=/usr/local/share/nltk_data
2026-01-19 10:17:33 UTC (buildkit.dockerfile.v0)USER dify
2026-01-19 10:17:33 UTC (buildkit.dockerfile.v0)ENTRYPOINT ["/bin/bash" "/entrypoint.sh"]
2026-01-19 10:17:41 UTC
813 MB
http://127.0.0.1:3000
COMMIT_SHAfb28f03155a13cfbf36210286f626b4bb39e764b
CONSOLE_API_URLhttp://127.0.0.1:5001
CONSOLE_WEB_URLhttp://127.0.0.1:3000
DEPLOY_ENVPRODUCTION
EDITIONSELF_HOSTED
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_SHA256fb85a13414b028c49ba18bbd523c2d055a30b56b18b92ce454ea2c51edc656c4
PYTHON_VERSION3.12.12
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:33bdc9671af8942d96d2f78f67aeec06580065dde1272decac3732689ec7c0e8 - 3.3% (26.8 MB)
[#001] sha256:4ae0f19ca418b0a15b934de535e88f8e25eba7518487f50d48b2ce849462ce86 - 0.39% (3.19 MB)
[#002] sha256:c3658e52572d4d43a2e57dd875bd5b19c5c713ddc1eeff8c94b05145a5573f1d - 1.6% (13 MB)
[#003] sha256:b81775473d6e9d5b65febaa97ae4628da4eaacc135f3345a9d56adf631fda9e3 - 0.0% (250 Bytes)
[#004] sha256:0cf7971956aa675ba6fc5ce366385fe0357e83a36ba14e4aefe652e3a05bb8ac - 0.0% (110 Bytes)
[#005] sha256:466a1f633fbbb6b9d63d1e35ba460b2741a8fc478c2e967e47db912dcc9e82d4 - 2.62% (21.3 MB)
[#006] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)
[#007] sha256:555c7a6d53c6e27b555fa37af7f8fcfeeb512342e4c1e99cd9b65039c71cc808 - 0.0% (1.12 KB)
[#008] sha256:27680b7ba05de72e6918f88ade2b4ef99db5fb9e6e645d4d25fdf797f07f2a67 - 19.05% (155 MB)
[#009] sha256:cd5f2991076a9c12c127eb0e533e6bd081d2d93335df51a7680a090826b434b1 - 64.98% (528 MB)
[#010] sha256:cfbc249ee328d4e2639f16ec190c6cbda324cb3f6b17e3be156e2a8c83ccd662 - 5.56% (45.2 MB)
[#011] sha256:77a4c13838911d81a838cb101b8564a9a4e21a06d908facaa599c6a71646d50d - 0.13% (1.07 MB)
[#012] sha256:1d5fa1360ad94d7536b51d796aa3c2e9fdb8c8a083075fbf059b0fd2a86bcb61 - 2.38% (19.3 MB)
[#013] sha256:19db761c913b2343885102641781c5c93602ef6c75d261f79dc41599c66d2570 - 0.0% (1.87 KB)
# debian.sh --arch 'arm64' out/ 'bookworm' '@1768176000'
2026-01-13 03:10:48 UTC (buildkit.dockerfile.v0)ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2026-01-13 03:10:48 UTC (buildkit.dockerfile.v0)ENV LANG=C.UTF-8
2026-01-13 03:10:48 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-01-13 03:10:48 UTC (buildkit.dockerfile.v0)ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305
2026-01-13 03:10:48 UTC (buildkit.dockerfile.v0)ENV PYTHON_VERSION=3.12.12
2026-01-13 03:10:48 UTC (buildkit.dockerfile.v0)ENV PYTHON_SHA256=fb85a13414b028c49ba18bbd523c2d055a30b56b18b92ce454ea2c51edc656c4
2026-01-13 03:22:53 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; rm -rf /var/lib/apt/lists/*; export PYTHONDONTWRITEBYTECODE=1; python3 --version; pip3 --version # buildkit
2026-01-13 03:22:53 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-01-13 03:22:53 UTC (buildkit.dockerfile.v0)CMD ["python3"]
2026-01-19 02:59:32 UTC (buildkit.dockerfile.v0)WORKDIR /app/api
2026-01-19 02:59:35 UTC (buildkit.dockerfile.v0)ENV UV_VERSION=0.8.9
2026-01-19 02:59:35 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c pip install --no-cache-dir uv==${UV_VERSION} # buildkit
2026-01-19 02:59:35 UTC (buildkit.dockerfile.v0)ENV FLASK_APP=app.py
2026-01-19 02:59:35 UTC (buildkit.dockerfile.v0)ENV EDITION=SELF_HOSTED
2026-01-19 02:59:35 UTC (buildkit.dockerfile.v0)ENV DEPLOY_ENV=PRODUCTION
2026-01-19 02:59:35 UTC (buildkit.dockerfile.v0)ENV CONSOLE_API_URL=http://127.0.0.1:5001
2026-01-19 02:59:35 UTC (buildkit.dockerfile.v0)ENV CONSOLE_WEB_URL=http://127.0.0.1:3000
2026-01-19 02:59:35 UTC (buildkit.dockerfile.v0)ENV SERVICE_API_URL=http://127.0.0.1:5001
2026-01-19 02:59:35 UTC (buildkit.dockerfile.v0)ENV APP_WEB_URL=http://127.0.0.1:3000
2026-01-19 02:59:35 UTC (buildkit.dockerfile.v0)EXPOSE [5001/tcp]
2026-01-19 02:59:35 UTC (buildkit.dockerfile.v0)ENV TZ=UTC
2026-01-19 02:59:35 UTC (buildkit.dockerfile.v0)ENV LANG=en_US.UTF-8
2026-01-19 02:59:35 UTC (buildkit.dockerfile.v0)ENV LC_ALL=en_US.UTF-8
2026-01-19 02:59:35 UTC (buildkit.dockerfile.v0)ENV PYTHONIOENCODING=utf-8
2026-01-19 03:00:19 UTC (buildkit.dockerfile.v0)WORKDIR /app/api
2026-01-19 03:00:19 UTC (buildkit.dockerfile.v0)ARG dify_uid=1001
2026-01-19 03:00:19 UTC (buildkit.dockerfile.v0)ARG NODE_MAJOR=22
2026-01-19 03:00:19 UTC (buildkit.dockerfile.v0)ARG NODE_PACKAGE_VERSION=22.21.0-1nodesource1
2026-01-19 03:00:19 UTC (buildkit.dockerfile.v0)ARG NODESOURCE_KEY_FPR=6F71F525282841EEDAF851B42F59B5F99B1BE0B4
2026-01-19 03:00:19 UTC (buildkit.dockerfile.v0)RUN |4 dify_uid=1001 NODE_MAJOR=22 NODE_PACKAGE_VERSION=22.21.0-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-01-19 03:00:34 UTC (buildkit.dockerfile.v0)RUN |4 dify_uid=1001 NODE_MAJOR=22 NODE_PACKAGE_VERSION=22.21.0-1nodesource1 NODESOURCE_KEY_FPR=6F71F525282841EEDAF851B42F59B5F99B1BE0B4 /bin/sh -c 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 && apt-get autoremove -y && rm -rf /var/lib/apt/lists/* # buildkit
2026-01-19 03:00:34 UTC (buildkit.dockerfile.v0)ENV VIRTUAL_ENV=/app/api/.venv
2026-01-19 10:17:36 UTC (buildkit.dockerfile.v0)COPY --chown=dify:dify /app/api/.venv /app/api/.venv # buildkit
2026-01-19 10:17:36 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-01-19 10:17:38 UTC (buildkit.dockerfile.v0)RUN |4 dify_uid=1001 NODE_MAJOR=22 NODE_PACKAGE_VERSION=22.21.0-1nodesource1 NODESOURCE_KEY_FPR=6F71F525282841EEDAF851B42F59B5F99B1BE0B4 /bin/sh -c mkdir -p /usr/local/share/nltk_data && NLTK_DATA=/usr/local/share/nltk_data python -c "import nltk; from unstructured.nlp.tokenize import download_nltk_packages; nltk.download('punkt'); nltk.download('averaged_perceptron_tagger'); nltk.download('stopwords'); download_nltk_packages()" && chmod -R 755 /usr/local/share/nltk_data # buildkit
2026-01-19 10:17:38 UTC (buildkit.dockerfile.v0)ENV TIKTOKEN_CACHE_DIR=/app/api/.tiktoken_cache
2026-01-19 10:17:40 UTC (buildkit.dockerfile.v0)RUN |4 dify_uid=1001 NODE_MAJOR=22 NODE_PACKAGE_VERSION=22.21.0-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-01-19 10:17:41 UTC (buildkit.dockerfile.v0)COPY --chown=dify:dify . /app/api/ # buildkit
2026-01-19 10:17:41 UTC (buildkit.dockerfile.v0)COPY --chown=dify:dify --chmod=755 docker/entrypoint.sh /entrypoint.sh # buildkit
2026-01-19 10:17:41 UTC (buildkit.dockerfile.v0)ARG COMMIT_SHA=fb28f03155a13cfbf36210286f626b4bb39e764b
2026-01-19 10:17:41 UTC (buildkit.dockerfile.v0)ENV COMMIT_SHA=fb28f03155a13cfbf36210286f626b4bb39e764b
2026-01-19 10:17:41 UTC (buildkit.dockerfile.v0)ENV NLTK_DATA=/usr/local/share/nltk_data
2026-01-19 10:17:41 UTC (buildkit.dockerfile.v0)USER dify
2026-01-19 10:17:41 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.