Namespace
langgenius
Image / Tag
dify-api:a9e2c05a100413426392d71a5d243950d7a50f8c
Content Digest
sha256:3738a57dc6ba4accda4f21a1634ea31dcae4f440d1dd60f9915d0232b587ea45
Details
Created

2026-01-05 08:48:41 UTC

Size

769 MB

Content Digest
Labels
  • org.opencontainers.image.created
    2026-01-05T08:47:55.177Z
  • org.opencontainers.image.description
    Production-ready platform for agentic workflow development.
  • org.opencontainers.image.licenses
    NOASSERTION
  • org.opencontainers.image.revision
    a9e2c05a100413426392d71a5d243950d7a50f8c
  • org.opencontainers.image.source
    https://github.com/langgenius/dify
  • org.opencontainers.image.title
    dify
  • org.opencontainers.image.url
    https://github.com/langgenius/dify
  • org.opencontainers.image.version
    main

Environment
APP_WEB_URL

http://127.0.0.1:3000

COMMIT_SHA

a9e2c05a100413426392d71a5d243950d7a50f8c

CONSOLE_API_URL

http://127.0.0.1:5001

CONSOLE_WEB_URL

http://127.0.0.1:3000

DEPLOY_ENV

PRODUCTION

EDITION

SELF_HOSTED

FLASK_APP

app.py

GPG_KEY

7169605F62C751356D054A26A821E680E5FA6305

LANG

en_US.UTF-8

LC_ALL

en_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

PYTHONIOENCODING

utf-8

PYTHON_SHA256

fb85a13414b028c49ba18bbd523c2d055a30b56b18b92ce454ea2c51edc656c4

PYTHON_VERSION

3.12.12

SERVICE_API_URL

http://127.0.0.1:5001

TIKTOKEN_CACHE_DIR

/app/api/.tiktoken_cache

TZ

UTC

UV_VERSION

0.8.9

VIRTUAL_ENV

/app/api/.venv


Layers

[#000] sha256:0347dcb76707f7d71a7c0b3a5f4a63b97cdd9923e637e67ad65b3b2d4ba05942 - 3.5% (26.9 MB)

[#001] sha256:c4c423f0ca19055e44cfbc62837d3bf7743b4d4e14d60c9a1735111058b1b189 - 0.44% (3.35 MB)

[#002] sha256:ae8f7f6e3c5888aba9e49fcf78a639231955c44f88e585b4840ed658e19bb917 - 1.69% (13 MB)

[#003] sha256:9da01a3e1fbb294db639c244550bba354c9624ffcb943c11f585ea30e1b59ffd - 0.0% (249 Bytes)

[#004] sha256:98ce8029510bae6f4e5b957413e18da79a3a9b9dcd13d23ae5f1ef973dfd3d94 - 0.0% (111 Bytes)

[#005] sha256:91b70eee47941054939508ead4fd1b3317d15bfd9b7c09f6093d2160565eb5e8 - 2.87% (22.1 MB)

[#006] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)

[#007] sha256:d323bf2954cda805ec1da84c1b5d300a51d203930aa76ae8df802d3d6e9cc00b - 0.0% (1.11 KB)

[#008] sha256:8e004858b25d71eaf8add6d8467bde16c3d8eb7b2d91dcaf31612b4135dcabaa - 15.23% (117 MB)

[#009] sha256:b0da58d2fe29a672ee27c183ff29cfdf488c617e256f6e7cf0d02ad141cbc3bc - 69.85% (537 MB)

[#010] sha256:8fb49b4df655082ade987fa9cd53b6fada8d4b8e7513b4656c794d6bab55d5c1 - 5.88% (45.2 MB)

[#011] sha256:b2da0e1f8e6a332b8defc77ad97ff886948d2bf52c78bc3f1c537b9a99f65fca - 0.14% (1.07 MB)

[#012] sha256:7c2119cf0b4793fb17dbc2112270b083598e3e3f4997d5754db162d2f68156b6 - 0.4% (3.07 MB)

[#013] sha256:9d85f5529553fcbd1649a4cc5de729fa72e66eea34cd400dc6ad956ddfcea13c - 0.0% (1.84 KB)


History
2025-12-29 00:00:00 UTC (debuerreotype 0.17)

# debian.sh --arch 'amd64' out/ 'bookworm' '@1766966400'

2025-12-30 00:36:56 UTC (buildkit.dockerfile.v0)

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

2025-12-30 00:36:56 UTC (buildkit.dockerfile.v0)

ENV LANG=C.UTF-8

2025-12-30 00:36:56 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-12-30 00:36:56 UTC (buildkit.dockerfile.v0)

ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305

2025-12-30 00:36:56 UTC (buildkit.dockerfile.v0)

ENV PYTHON_VERSION=3.12.12

2025-12-30 00:36:56 UTC (buildkit.dockerfile.v0)

ENV PYTHON_SHA256=fb85a13414b028c49ba18bbd523c2d055a30b56b18b92ce454ea2c51edc656c4

2025-12-30 00:46: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; rm -rf /var/lib/apt/lists/*; export PYTHONDONTWRITEBYTECODE=1; python3 --version; pip3 --version # buildkit

2025-12-30 00:46: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-12-30 00:46:20 UTC (buildkit.dockerfile.v0)

CMD ["python3"]

2026-01-05 08:12:55 UTC (buildkit.dockerfile.v0)

WORKDIR /app/api

2026-01-05 08:12:58 UTC (buildkit.dockerfile.v0)

ENV UV_VERSION=0.8.9

2026-01-05 08:12:58 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c pip install --no-cache-dir uv==${UV_VERSION} # buildkit

2026-01-05 08:12:58 UTC (buildkit.dockerfile.v0)

ENV FLASK_APP=app.py

2026-01-05 08:12:58 UTC (buildkit.dockerfile.v0)

ENV EDITION=SELF_HOSTED

2026-01-05 08:12:58 UTC (buildkit.dockerfile.v0)

ENV DEPLOY_ENV=PRODUCTION

2026-01-05 08:12:58 UTC (buildkit.dockerfile.v0)

ENV CONSOLE_API_URL=http://127.0.0.1:5001

2026-01-05 08:12:58 UTC (buildkit.dockerfile.v0)

ENV CONSOLE_WEB_URL=http://127.0.0.1:3000

2026-01-05 08:12:58 UTC (buildkit.dockerfile.v0)

ENV SERVICE_API_URL=http://127.0.0.1:5001

2026-01-05 08:12:58 UTC (buildkit.dockerfile.v0)

ENV APP_WEB_URL=http://127.0.0.1:3000

2026-01-05 08:12:58 UTC (buildkit.dockerfile.v0)

EXPOSE [5001/tcp]

2026-01-05 08:12:58 UTC (buildkit.dockerfile.v0)

ENV TZ=UTC

2026-01-05 08:12:58 UTC (buildkit.dockerfile.v0)

ENV LANG=en_US.UTF-8

2026-01-05 08:12:58 UTC (buildkit.dockerfile.v0)

ENV LC_ALL=en_US.UTF-8

2026-01-05 08:12:58 UTC (buildkit.dockerfile.v0)

ENV PYTHONIOENCODING=utf-8

2026-01-05 08:12:58 UTC (buildkit.dockerfile.v0)

WORKDIR /app/api

2026-01-05 08:12:58 UTC (buildkit.dockerfile.v0)

ARG dify_uid=1001

2026-01-05 08:12:58 UTC (buildkit.dockerfile.v0)

RUN |1 dify_uid=1001 /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-05 08:13:06 UTC (buildkit.dockerfile.v0)

RUN |1 dify_uid=1001 /bin/sh -c apt-get update && apt-get install -y --no-install-recommends curl nodejs 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-05 08:13:06 UTC (buildkit.dockerfile.v0)

ENV VIRTUAL_ENV=/app/api/.venv

2026-01-05 08:13:39 UTC (buildkit.dockerfile.v0)

COPY --chown=dify:dify /app/api/.venv /app/api/.venv # buildkit

2026-01-05 08:13:39 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-05 08:13:42 UTC (buildkit.dockerfile.v0)

RUN |1 dify_uid=1001 /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-05 08:13:42 UTC (buildkit.dockerfile.v0)

ENV TIKTOKEN_CACHE_DIR=/app/api/.tiktoken_cache

2026-01-05 08:13:43 UTC (buildkit.dockerfile.v0)

RUN |1 dify_uid=1001 /bin/sh -c python -c "import tiktoken; tiktoken.encoding_for_model('gpt2')" && chown -R dify:dify ${TIKTOKEN_CACHE_DIR} # buildkit

2026-01-05 08:48:41 UTC (buildkit.dockerfile.v0)

COPY --chown=dify:dify . /app/api/ # buildkit

2026-01-05 08:48:41 UTC (buildkit.dockerfile.v0)

COPY --chown=dify:dify --chmod=755 docker/entrypoint.sh /entrypoint.sh # buildkit

2026-01-05 08:48:41 UTC (buildkit.dockerfile.v0)

ARG COMMIT_SHA=a9e2c05a100413426392d71a5d243950d7a50f8c

2026-01-05 08:48:41 UTC (buildkit.dockerfile.v0)

ENV COMMIT_SHA=a9e2c05a100413426392d71a5d243950d7a50f8c

2026-01-05 08:48:41 UTC (buildkit.dockerfile.v0)

ENV NLTK_DATA=/usr/local/share/nltk_data

2026-01-05 08:48:41 UTC (buildkit.dockerfile.v0)

USER dify

2026-01-05 08:48:41 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["/bin/bash" "/entrypoint.sh"]

Details
Created

2026-01-05 08:49:28 UTC

Size

746 MB

Content Digest
Labels
  • org.opencontainers.image.created
    2026-01-05T08:48:00.876Z
  • org.opencontainers.image.description
    Production-ready platform for agentic workflow development.
  • org.opencontainers.image.licenses
    NOASSERTION
  • org.opencontainers.image.revision
    a9e2c05a100413426392d71a5d243950d7a50f8c
  • org.opencontainers.image.source
    https://github.com/langgenius/dify
  • org.opencontainers.image.title
    dify
  • org.opencontainers.image.url
    https://github.com/langgenius/dify
  • org.opencontainers.image.version
    main

Environment
APP_WEB_URL

http://127.0.0.1:3000

COMMIT_SHA

a9e2c05a100413426392d71a5d243950d7a50f8c

CONSOLE_API_URL

http://127.0.0.1:5001

CONSOLE_WEB_URL

http://127.0.0.1:3000

DEPLOY_ENV

PRODUCTION

EDITION

SELF_HOSTED

FLASK_APP

app.py

GPG_KEY

7169605F62C751356D054A26A821E680E5FA6305

LANG

en_US.UTF-8

LC_ALL

en_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

PYTHONIOENCODING

utf-8

PYTHON_SHA256

fb85a13414b028c49ba18bbd523c2d055a30b56b18b92ce454ea2c51edc656c4

PYTHON_VERSION

3.12.12

SERVICE_API_URL

http://127.0.0.1:5001

TIKTOKEN_CACHE_DIR

/app/api/.tiktoken_cache

TZ

UTC

UV_VERSION

0.8.9

VIRTUAL_ENV

/app/api/.venv


Layers

[#000] sha256:b1efea88fbf7c88bbbdeec2e84bd4f8d0b814c210ee65763f6d4cc91c28365e8 - 3.59% (26.8 MB)

[#001] sha256:f5b0fbb4f94beb46dcbe8013e842a61c6293be865c4ceac92a4291871f119fe4 - 0.43% (3.19 MB)

[#002] sha256:26e70b9fead5015a4e9b90dbd66fbd51705aa1834558b201bda541f750033b1f - 1.74% (13 MB)

[#003] sha256:603cf294029f594777b8fe03bab6a98960403603b086e1d6c5e07bf8f800be81 - 0.0% (248 Bytes)

[#004] sha256:3ef1a03c4d743b5cdd2520cd980ce5f65079efb50c5c10864cccb9d5731208b1 - 0.0% (111 Bytes)

[#005] sha256:98d25b5df48089c3813635588731afe11eeedd556668b6bb3ae1dff4b468c77c - 2.86% (21.3 MB)

[#006] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)

[#007] sha256:4fb0795434fb12fc4ece9c65a75f6aeee16d9c38561e5b4d44aee95bee5b8b35 - 0.0% (1.11 KB)

[#008] sha256:40c789c31b77930344e5ccb1b25b0713b91f1b66cea2941f7d1608a7e0af90ba - 15.61% (116 MB)

[#009] sha256:292fca5c423b252e4f66a0379af6721f79794aa0d7a0f4ed01e4dadedff1cd82 - 69.16% (516 MB)

[#010] sha256:55de21ed1c43648a24eeb23c9ca95602b85e015ddf352bb148aed807be261376 - 6.06% (45.2 MB)

[#011] sha256:9100d3a3727d089f5d682a26594e7c7910cda18bc5a7c38f755ca93783b0a0dd - 0.14% (1.07 MB)

[#012] sha256:04a8392518055cbc0bb2a3159e2f224847706a50381949c0077b849d239146b6 - 0.41% (3.07 MB)

[#013] sha256:eef811a8eed4dd97c3714c82cd86f313374b183dac030f321b0980623747e9c1 - 0.0% (1.85 KB)


History
2025-12-29 00:00:00 UTC (debuerreotype 0.17)

# debian.sh --arch 'arm64' out/ 'bookworm' '@1766966400'

2025-12-30 00:37:44 UTC (buildkit.dockerfile.v0)

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

2025-12-30 00:37:44 UTC (buildkit.dockerfile.v0)

ENV LANG=C.UTF-8

2025-12-30 00:37:44 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-12-30 00:37:44 UTC (buildkit.dockerfile.v0)

ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305

2025-12-30 00:37:44 UTC (buildkit.dockerfile.v0)

ENV PYTHON_VERSION=3.12.12

2025-12-30 00:37:44 UTC (buildkit.dockerfile.v0)

ENV PYTHON_SHA256=fb85a13414b028c49ba18bbd523c2d055a30b56b18b92ce454ea2c51edc656c4

2025-12-30 00:49:37 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

2025-12-30 00:49:37 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-12-30 00:49:37 UTC (buildkit.dockerfile.v0)

CMD ["python3"]

2026-01-05 08:14:27 UTC (buildkit.dockerfile.v0)

WORKDIR /app/api

2026-01-05 08:14:31 UTC (buildkit.dockerfile.v0)

ENV UV_VERSION=0.8.9

2026-01-05 08:14:31 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c pip install --no-cache-dir uv==${UV_VERSION} # buildkit

2026-01-05 08:14:31 UTC (buildkit.dockerfile.v0)

ENV FLASK_APP=app.py

2026-01-05 08:14:31 UTC (buildkit.dockerfile.v0)

ENV EDITION=SELF_HOSTED

2026-01-05 08:14:31 UTC (buildkit.dockerfile.v0)

ENV DEPLOY_ENV=PRODUCTION

2026-01-05 08:14:31 UTC (buildkit.dockerfile.v0)

ENV CONSOLE_API_URL=http://127.0.0.1:5001

2026-01-05 08:14:31 UTC (buildkit.dockerfile.v0)

ENV CONSOLE_WEB_URL=http://127.0.0.1:3000

2026-01-05 08:14:31 UTC (buildkit.dockerfile.v0)

ENV SERVICE_API_URL=http://127.0.0.1:5001

2026-01-05 08:14:31 UTC (buildkit.dockerfile.v0)

ENV APP_WEB_URL=http://127.0.0.1:3000

2026-01-05 08:14:31 UTC (buildkit.dockerfile.v0)

EXPOSE [5001/tcp]

2026-01-05 08:14:31 UTC (buildkit.dockerfile.v0)

ENV TZ=UTC

2026-01-05 08:14:31 UTC (buildkit.dockerfile.v0)

ENV LANG=en_US.UTF-8

2026-01-05 08:14:31 UTC (buildkit.dockerfile.v0)

ENV LC_ALL=en_US.UTF-8

2026-01-05 08:14:31 UTC (buildkit.dockerfile.v0)

ENV PYTHONIOENCODING=utf-8

2026-01-05 08:14:31 UTC (buildkit.dockerfile.v0)

WORKDIR /app/api

2026-01-05 08:14:31 UTC (buildkit.dockerfile.v0)

ARG dify_uid=1001

2026-01-05 08:14:31 UTC (buildkit.dockerfile.v0)

RUN |1 dify_uid=1001 /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-05 08:14:47 UTC (buildkit.dockerfile.v0)

RUN |1 dify_uid=1001 /bin/sh -c apt-get update && apt-get install -y --no-install-recommends curl nodejs 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-05 08:14:47 UTC (buildkit.dockerfile.v0)

ENV VIRTUAL_ENV=/app/api/.venv

2026-01-05 08:15:35 UTC (buildkit.dockerfile.v0)

COPY --chown=dify:dify /app/api/.venv /app/api/.venv # buildkit

2026-01-05 08:15:35 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-05 08:15:38 UTC (buildkit.dockerfile.v0)

RUN |1 dify_uid=1001 /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-05 08:15:38 UTC (buildkit.dockerfile.v0)

ENV TIKTOKEN_CACHE_DIR=/app/api/.tiktoken_cache

2026-01-05 08:15:39 UTC (buildkit.dockerfile.v0)

RUN |1 dify_uid=1001 /bin/sh -c python -c "import tiktoken; tiktoken.encoding_for_model('gpt2')" && chown -R dify:dify ${TIKTOKEN_CACHE_DIR} # buildkit

2026-01-05 08:49:27 UTC (buildkit.dockerfile.v0)

COPY --chown=dify:dify . /app/api/ # buildkit

2026-01-05 08:49:28 UTC (buildkit.dockerfile.v0)

COPY --chown=dify:dify --chmod=755 docker/entrypoint.sh /entrypoint.sh # buildkit

2026-01-05 08:49:28 UTC (buildkit.dockerfile.v0)

ARG COMMIT_SHA=a9e2c05a100413426392d71a5d243950d7a50f8c

2026-01-05 08:49:28 UTC (buildkit.dockerfile.v0)

ENV COMMIT_SHA=a9e2c05a100413426392d71a5d243950d7a50f8c

2026-01-05 08:49:28 UTC (buildkit.dockerfile.v0)

ENV NLTK_DATA=/usr/local/share/nltk_data

2026-01-05 08:49:28 UTC (buildkit.dockerfile.v0)

USER dify

2026-01-05 08:49:28 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["/bin/bash" "/entrypoint.sh"]

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