2025-07-19 17:43:39 UTC
4.32 GB
false
DOCKERtrue
DO_NOT_TRACKtrue
ENVprod
GPG_KEYA035C8C19219BA821ECEA86B64E628F8D684696D
HF_HOME/app/backend/data/cache/embedding/models
HOME/root
LANGC.UTF-8
OLLAMA_BASE_URL/ollama
OPENAI_API_BASE_URL OPENAI_API_KEY PATH/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PORT8080
PYTHON_SHA2568fb5f9fbc7609fa822cb31549884575db7fd9657cbffb89510b5d7975963a83a
PYTHON_VERSION3.11.13
RAG_EMBEDDING_MODELsentence-transformers/all-MiniLM-L6-v2
RAG_RERANKING_MODEL SCARF_NO_ANALYTICStrue
SENTENCE_TRANSFORMERS_HOME/app/backend/data/cache/embedding/models
TIKTOKEN_CACHE_DIR/app/backend/data/cache/tiktoken
TIKTOKEN_ENCODING_NAMEcl100k_base
USE_CUDA_DOCKERtrue
USE_CUDA_DOCKER_VERcu126
USE_EMBEDDING_MODEL_DOCKERsentence-transformers/all-MiniLM-L6-v2
USE_OLLAMA_DOCKERfalse
USE_RERANKING_MODEL_DOCKER WEBUI_BUILD_VERSIONb249809d2dff7bc89394a61ee5f7e258b295623a
WEBUI_SECRET_KEY WHISPER_MODELbase
WHISPER_MODEL_DIR/app/backend/data/cache/whisper/models
[#000] sha256:3da95a905ed546f99c4564407923a681757d89651a388ec3f1f5e9bf5ed0b39d - 0.61% (26.9 MB)
[#001] sha256:483d0dd375188d7d3b2d66116d5974d2b67e6988c6146eb2c6a3e2bc33a92121 - 0.08% (3.35 MB)
[#002] sha256:02a5d22e0d6f85a6ac1c7fb356e9eed39a981decd1fac1205a31f31f4cb010f1 - 0.35% (15.5 MB)
[#003] sha256:471797cdda8c4cd4a9795c8cb56078e627b3fc7486fd8574804ec7d5f1676b9b - 0.0% (249 Bytes)
[#004] sha256:7080bcbfe91edab45a6444d6bf995ec5c26154dcd5c6fedb7bef08d439914abd - 0.0% (116 Bytes)
[#005] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)
[#006] sha256:7512db845e9c0a899e40ccf41e0f751e82154fbb5706485534c1613dbcbd677c - 0.0% (135 Bytes)
[#007] sha256:a87d9601f6e561a354fc30ef5581a4c8b6f672883734ee742442fd750d971714 - 0.0% (190 Bytes)
[#008] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)
[#009] sha256:7eae80a24056b4c331bda0667d084e51677fb4236243ff6abc4b25a75a34f577 - 7.36% (325 MB)
[#010] sha256:0a214ad8d96142c07aaeefe33e26ae60d2721c4c5d2d528bcbaaf7a6da2c3af7 - 0.0% (1.37 KB)
[#011] sha256:7fb83e14dc290b48c0d76123d73e384e69dc136089ad16cfdec0cbba74abfa2e - 88.63% (3.83 GB)
[#012] sha256:f5fdc8234a08c81c3a282611ebc24205d33eb354519335fc30bf159e73017bdf - 2.13% (94 MB)
[#013] sha256:c7b130fadac1330eb99cec53980fec8340fccc7ce09fd8ede6eafda00ad27173 - 0.0% (69.6 KB)
[#014] sha256:43d14015addeb084fdc715fadafa9998703e9cd7da7305d0026e45df9325c352 - 0.0% (1.76 KB)
[#015] sha256:13056de19772ade562a4b2fb13d74c38f88e139673f741a36eb6a1304c5724ae - 0.85% (37.7 MB)
# debian.sh --arch 'amd64' out/ 'bookworm' '@1751241600'
2025-06-03 23:02:53 UTC (buildkit.dockerfile.v0)ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2025-06-03 23:02:53 UTC (buildkit.dockerfile.v0)ENV LANG=C.UTF-8
2025-06-03 23:02:53 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-06-03 23:02:53 UTC (buildkit.dockerfile.v0)ENV GPG_KEY=A035C8C19219BA821ECEA86B64E628F8D684696D
2025-06-03 23:02:53 UTC (buildkit.dockerfile.v0)ENV PYTHON_VERSION=3.11.13
2025-06-03 23:02:53 UTC (buildkit.dockerfile.v0)ENV PYTHON_SHA256=8fb5f9fbc7609fa822cb31549884575db7fd9657cbffb89510b5d7975963a83a
2025-06-03 23:02: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-linux-musl' && echo '--with-lto') --with-ensurepip ; nproc="$(nproc)"; EXTRA_CFLAGS="$(dpkg-buildflags --get CFLAGS)"; LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"; LDFLAGS="${LDFLAGS:--Wl},--strip-all"; 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 -r dpkg-query --search | cut -d: -f1 | 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 install --disable-pip-version-check --no-cache-dir --no-compile 'setuptools==65.5.1' 'wheel<0.46' ; pip3 --version # buildkit
2025-06-03 23:02: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
2025-06-03 23:02:53 UTC (buildkit.dockerfile.v0)CMD ["python3"]
2025-07-01 10:07:21 UTC (buildkit.dockerfile.v0)ARG USE_CUDA=true
2025-07-01 10:07:21 UTC (buildkit.dockerfile.v0)ARG USE_OLLAMA=false
2025-07-01 10:07:21 UTC (buildkit.dockerfile.v0)ARG USE_CUDA_VER=cu126
2025-07-01 10:07:21 UTC (buildkit.dockerfile.v0)ARG USE_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2
2025-07-01 10:07:21 UTC (buildkit.dockerfile.v0)ARG USE_RERANKING_MODEL=
2025-07-01 10:07:21 UTC (buildkit.dockerfile.v0)ARG UID=0
2025-07-01 10:07:21 UTC (buildkit.dockerfile.v0)ARG GID=0
2025-07-01 10:07:21 UTC (buildkit.dockerfile.v0)ENV ENV=prod PORT=8080 USE_OLLAMA_DOCKER=false USE_CUDA_DOCKER=true USE_CUDA_DOCKER_VER=cu126 USE_EMBEDDING_MODEL_DOCKER=sentence-transformers/all-MiniLM-L6-v2 USE_RERANKING_MODEL_DOCKER=
2025-07-01 10:07:21 UTC (buildkit.dockerfile.v0)ENV OLLAMA_BASE_URL=/ollama OPENAI_API_BASE_URL=
2025-07-01 10:07:21 UTC (buildkit.dockerfile.v0)ENV OPENAI_API_KEY= WEBUI_SECRET_KEY= SCARF_NO_ANALYTICS=true DO_NOT_TRACK=true ANONYMIZED_TELEMETRY=false
2025-07-01 10:07:21 UTC (buildkit.dockerfile.v0)ENV WHISPER_MODEL=base WHISPER_MODEL_DIR=/app/backend/data/cache/whisper/models
2025-07-01 10:07:21 UTC (buildkit.dockerfile.v0)ENV RAG_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2 RAG_RERANKING_MODEL= SENTENCE_TRANSFORMERS_HOME=/app/backend/data/cache/embedding/models
2025-07-01 10:07:21 UTC (buildkit.dockerfile.v0)ENV TIKTOKEN_ENCODING_NAME=cl100k_base TIKTOKEN_CACHE_DIR=/app/backend/data/cache/tiktoken
2025-07-01 10:07:21 UTC (buildkit.dockerfile.v0)ENV HF_HOME=/app/backend/data/cache/embedding/models
2025-07-01 10:07:21 UTC (buildkit.dockerfile.v0)WORKDIR /app/backend
2025-07-01 10:07:21 UTC (buildkit.dockerfile.v0)ENV HOME=/root
2025-07-01 10:07:21 UTC (buildkit.dockerfile.v0)RUN |7 USE_CUDA=true USE_OLLAMA=false USE_CUDA_VER=cu126 USE_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2 USE_RERANKING_MODEL= UID=0 GID=0 /bin/sh -c if [ $UID -ne 0 ]; then if [ $GID -ne 0 ]; then addgroup --gid $GID app; fi; adduser --uid $UID --gid $GID --home $HOME --disabled-password --no-create-home app; fi # buildkit
2025-07-01 10:07:21 UTC (buildkit.dockerfile.v0)RUN |7 USE_CUDA=true USE_OLLAMA=false USE_CUDA_VER=cu126 USE_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2 USE_RERANKING_MODEL= UID=0 GID=0 /bin/sh -c mkdir -p $HOME/.cache/chroma # buildkit
2025-07-01 10:07:21 UTC (buildkit.dockerfile.v0)RUN |7 USE_CUDA=true USE_OLLAMA=false USE_CUDA_VER=cu126 USE_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2 USE_RERANKING_MODEL= UID=0 GID=0 /bin/sh -c echo -n 00000000-0000-0000-0000-000000000000 > $HOME/.cache/chroma/telemetry_user_id # buildkit
2025-07-01 10:07:21 UTC (buildkit.dockerfile.v0)RUN |7 USE_CUDA=true USE_OLLAMA=false USE_CUDA_VER=cu126 USE_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2 USE_RERANKING_MODEL= UID=0 GID=0 /bin/sh -c chown -R $UID:$GID /app $HOME # buildkit
2025-07-01 10:08:04 UTC (buildkit.dockerfile.v0)RUN |7 USE_CUDA=true USE_OLLAMA=false USE_CUDA_VER=cu126 USE_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2 USE_RERANKING_MODEL= UID=0 GID=0 /bin/sh -c if [ "$USE_OLLAMA" = "true" ]; then apt-get update && apt-get install -y --no-install-recommends git build-essential pandoc netcat-openbsd curl && apt-get install -y --no-install-recommends gcc python3-dev && apt-get install -y --no-install-recommends ffmpeg libsm6 libxext6 && apt-get install -y --no-install-recommends curl jq && curl -fsSL https://ollama.com/install.sh | sh && rm -rf /var/lib/apt/lists/*; else apt-get update && apt-get install -y --no-install-recommends git build-essential pandoc gcc netcat-openbsd curl jq && apt-get install -y --no-install-recommends gcc python3-dev && apt-get install -y --no-install-recommends ffmpeg libsm6 libxext6 && rm -rf /var/lib/apt/lists/*; fi # buildkit
2025-07-19 17:40:46 UTC (buildkit.dockerfile.v0)COPY --chown=0:0 ./backend/requirements.txt ./requirements.txt # buildkit
2025-07-19 17:42:39 UTC (buildkit.dockerfile.v0)RUN |7 USE_CUDA=true USE_OLLAMA=false USE_CUDA_VER=cu126 USE_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2 USE_RERANKING_MODEL= UID=0 GID=0 /bin/sh -c pip3 install --no-cache-dir uv && if [ "$USE_CUDA" = "true" ]; then pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/$USE_CUDA_DOCKER_VER --no-cache-dir && uv pip install --system -r requirements.txt --no-cache-dir && python -c "import os; from sentence_transformers import SentenceTransformer; SentenceTransformer(os.environ['RAG_EMBEDDING_MODEL'], device='cpu')" && python -c "import os; from faster_whisper import WhisperModel; WhisperModel(os.environ['WHISPER_MODEL'], device='cpu', compute_type='int8', download_root=os.environ['WHISPER_MODEL_DIR'])"; python -c "import os; import tiktoken; tiktoken.get_encoding(os.environ['TIKTOKEN_ENCODING_NAME'])"; else pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu --no-cache-dir && uv pip install --system -r requirements.txt --no-cache-dir && python -c "import os; from sentence_transformers import SentenceTransformer; SentenceTransformer(os.environ['RAG_EMBEDDING_MODEL'], device='cpu')" && python -c "import os; from faster_whisper import WhisperModel; WhisperModel(os.environ['WHISPER_MODEL'], device='cpu', compute_type='int8', download_root=os.environ['WHISPER_MODEL_DIR'])"; python -c "import os; import tiktoken; tiktoken.get_encoding(os.environ['TIKTOKEN_ENCODING_NAME'])"; fi; chown -R $UID:$GID /app/backend/data/ # buildkit
2025-07-19 17:43:39 UTC (buildkit.dockerfile.v0)COPY --chown=0:0 /app/build /app/build # buildkit
2025-07-19 17:43:39 UTC (buildkit.dockerfile.v0)COPY --chown=0:0 /app/CHANGELOG.md /app/CHANGELOG.md # buildkit
2025-07-19 17:43:39 UTC (buildkit.dockerfile.v0)COPY --chown=0:0 /app/package.json /app/package.json # buildkit
2025-07-19 17:43:39 UTC (buildkit.dockerfile.v0)COPY --chown=0:0 ./backend . # buildkit
2025-07-19 17:43:39 UTC (buildkit.dockerfile.v0)EXPOSE map[8080/tcp:{}]
2025-07-19 17:43:39 UTC (buildkit.dockerfile.v0)HEALTHCHECK &{["CMD-SHELL" "curl --silent --fail http://localhost:${PORT:-8080}/health | jq -ne 'input.status == true' || exit 1"] "0s" "0s" "0s" "0s" '\x00'}
2025-07-19 17:43:39 UTC (buildkit.dockerfile.v0)USER 0:0
2025-07-19 17:43:39 UTC (buildkit.dockerfile.v0)ARG BUILD_HASH=b249809d2dff7bc89394a61ee5f7e258b295623a
2025-07-19 17:43:39 UTC (buildkit.dockerfile.v0)ENV WEBUI_BUILD_VERSION=b249809d2dff7bc89394a61ee5f7e258b295623a
2025-07-19 17:43:39 UTC (buildkit.dockerfile.v0)ENV DOCKER=true
2025-07-19 17:43:39 UTC (buildkit.dockerfile.v0)CMD ["bash" "start.sh"]
2025-07-19 17:43:56 UTC
3.77 GB
false
DOCKERtrue
DO_NOT_TRACKtrue
ENVprod
GPG_KEYA035C8C19219BA821ECEA86B64E628F8D684696D
HF_HOME/app/backend/data/cache/embedding/models
HOME/root
LANGC.UTF-8
OLLAMA_BASE_URL/ollama
OPENAI_API_BASE_URL OPENAI_API_KEY PATH/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PORT8080
PYTHON_SHA2568fb5f9fbc7609fa822cb31549884575db7fd9657cbffb89510b5d7975963a83a
PYTHON_VERSION3.11.13
RAG_EMBEDDING_MODELsentence-transformers/all-MiniLM-L6-v2
RAG_RERANKING_MODEL SCARF_NO_ANALYTICStrue
SENTENCE_TRANSFORMERS_HOME/app/backend/data/cache/embedding/models
TIKTOKEN_CACHE_DIR/app/backend/data/cache/tiktoken
TIKTOKEN_ENCODING_NAMEcl100k_base
USE_CUDA_DOCKERtrue
USE_CUDA_DOCKER_VERcu126
USE_EMBEDDING_MODEL_DOCKERsentence-transformers/all-MiniLM-L6-v2
USE_OLLAMA_DOCKERfalse
USE_RERANKING_MODEL_DOCKER WEBUI_BUILD_VERSIONb249809d2dff7bc89394a61ee5f7e258b295623a
WEBUI_SECRET_KEY WHISPER_MODELbase
WHISPER_MODEL_DIR/app/backend/data/cache/whisper/models
[#000] sha256:37259e7330667afd74c3386d3ed869f06bd9b7714370c78e3065f4e28607cc02 - 0.69% (26.8 MB)
[#001] sha256:6e88b4602d856d9c6fd77c5ce5fc92d0fd2b235bde9fcf47cd0b39a63e49cd85 - 0.08% (3.18 MB)
[#002] sha256:60d9b0bcb0b0188c13173f03f5013b061f0cd078913707486330c4272ccf8f89 - 0.4% (15.4 MB)
[#003] sha256:f2ade477537ee2c8bdf36beee053c8cc2c5aa440225436c69f1dafd6f20904f4 - 0.0% (250 Bytes)
[#004] sha256:9774cbc5a5fd09a0b7c6d4968b5b033c2b4c34a5369b62acd7392065dc8f8ad2 - 0.0% (116 Bytes)
[#005] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)
[#006] sha256:4c82ac4e4818d1deccc769b0f63240f71d795cbb43dbd2c7930b0e0b423f889e - 0.0% (136 Bytes)
[#007] sha256:ed20cf7a6b7b323e7a51672e6630b484a7818eee34ce151f21cae329c39c560d - 0.0% (190 Bytes)
[#008] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)
[#009] sha256:a56cea9679be0c35d1788efd9ab2259324f5f75ba12fd4b0116229ea205c2c1e - 8.25% (318 MB)
[#010] sha256:2d419314ab970e201c0fd803b9f26dc1744f7333b868ac7d8ab6f1bf742a54bc - 0.0% (1.36 KB)
[#011] sha256:65a8f760ca9448d8b676223ac1f20955c48b107623101690c151ec5eade90332 - 87.15% (3.28 GB)
[#012] sha256:2a76c440261db438d1786a57ab328a142a7993c0ffea9214050c62fdcf697a9f - 2.44% (94 MB)
[#013] sha256:845ed29d9f519017802c023b437ae291a15cc5c656ef0b9bae606e02d2cdb50f - 0.0% (69.6 KB)
[#014] sha256:71b63ea92ffeb14a921a761fb310ee78a1476631bf356e75d45114597fa26e85 - 0.0% (1.76 KB)
[#015] sha256:4389f838e36b8b01ae3428e1a749d40bc485098684d156ebf469486a0769572a - 0.98% (37.7 MB)
# debian.sh --arch 'arm64' out/ 'bookworm' '@1751241600'
2025-06-03 23:02:53 UTC (buildkit.dockerfile.v0)ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2025-06-03 23:02:53 UTC (buildkit.dockerfile.v0)ENV LANG=C.UTF-8
2025-06-03 23:02:53 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-06-03 23:02:53 UTC (buildkit.dockerfile.v0)ENV GPG_KEY=A035C8C19219BA821ECEA86B64E628F8D684696D
2025-06-03 23:02:53 UTC (buildkit.dockerfile.v0)ENV PYTHON_VERSION=3.11.13
2025-06-03 23:02:53 UTC (buildkit.dockerfile.v0)ENV PYTHON_SHA256=8fb5f9fbc7609fa822cb31549884575db7fd9657cbffb89510b5d7975963a83a
2025-06-03 23:02: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-linux-musl' && echo '--with-lto') --with-ensurepip ; nproc="$(nproc)"; EXTRA_CFLAGS="$(dpkg-buildflags --get CFLAGS)"; LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"; LDFLAGS="${LDFLAGS:--Wl},--strip-all"; 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 -r dpkg-query --search | cut -d: -f1 | 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 install --disable-pip-version-check --no-cache-dir --no-compile 'setuptools==65.5.1' 'wheel<0.46' ; pip3 --version # buildkit
2025-06-03 23:02: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
2025-06-03 23:02:53 UTC (buildkit.dockerfile.v0)CMD ["python3"]
2025-07-05 17:07:27 UTC (buildkit.dockerfile.v0)ARG USE_CUDA=true
2025-07-05 17:07:27 UTC (buildkit.dockerfile.v0)ARG USE_OLLAMA=false
2025-07-05 17:07:27 UTC (buildkit.dockerfile.v0)ARG USE_CUDA_VER=cu126
2025-07-05 17:07:27 UTC (buildkit.dockerfile.v0)ARG USE_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2
2025-07-05 17:07:27 UTC (buildkit.dockerfile.v0)ARG USE_RERANKING_MODEL=
2025-07-05 17:07:27 UTC (buildkit.dockerfile.v0)ARG UID=0
2025-07-05 17:07:27 UTC (buildkit.dockerfile.v0)ARG GID=0
2025-07-05 17:07:27 UTC (buildkit.dockerfile.v0)ENV ENV=prod PORT=8080 USE_OLLAMA_DOCKER=false USE_CUDA_DOCKER=true USE_CUDA_DOCKER_VER=cu126 USE_EMBEDDING_MODEL_DOCKER=sentence-transformers/all-MiniLM-L6-v2 USE_RERANKING_MODEL_DOCKER=
2025-07-05 17:07:27 UTC (buildkit.dockerfile.v0)ENV OLLAMA_BASE_URL=/ollama OPENAI_API_BASE_URL=
2025-07-05 17:07:27 UTC (buildkit.dockerfile.v0)ENV OPENAI_API_KEY= WEBUI_SECRET_KEY= SCARF_NO_ANALYTICS=true DO_NOT_TRACK=true ANONYMIZED_TELEMETRY=false
2025-07-05 17:07:27 UTC (buildkit.dockerfile.v0)ENV WHISPER_MODEL=base WHISPER_MODEL_DIR=/app/backend/data/cache/whisper/models
2025-07-05 17:07:27 UTC (buildkit.dockerfile.v0)ENV RAG_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2 RAG_RERANKING_MODEL= SENTENCE_TRANSFORMERS_HOME=/app/backend/data/cache/embedding/models
2025-07-05 17:07:27 UTC (buildkit.dockerfile.v0)ENV TIKTOKEN_ENCODING_NAME=cl100k_base TIKTOKEN_CACHE_DIR=/app/backend/data/cache/tiktoken
2025-07-05 17:07:27 UTC (buildkit.dockerfile.v0)ENV HF_HOME=/app/backend/data/cache/embedding/models
2025-07-05 17:07:27 UTC (buildkit.dockerfile.v0)WORKDIR /app/backend
2025-07-05 17:07:27 UTC (buildkit.dockerfile.v0)ENV HOME=/root
2025-07-05 17:07:28 UTC (buildkit.dockerfile.v0)RUN |7 USE_CUDA=true USE_OLLAMA=false USE_CUDA_VER=cu126 USE_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2 USE_RERANKING_MODEL= UID=0 GID=0 /bin/sh -c if [ $UID -ne 0 ]; then if [ $GID -ne 0 ]; then addgroup --gid $GID app; fi; adduser --uid $UID --gid $GID --home $HOME --disabled-password --no-create-home app; fi # buildkit
2025-07-05 17:07:28 UTC (buildkit.dockerfile.v0)RUN |7 USE_CUDA=true USE_OLLAMA=false USE_CUDA_VER=cu126 USE_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2 USE_RERANKING_MODEL= UID=0 GID=0 /bin/sh -c mkdir -p $HOME/.cache/chroma # buildkit
2025-07-05 17:07:28 UTC (buildkit.dockerfile.v0)RUN |7 USE_CUDA=true USE_OLLAMA=false USE_CUDA_VER=cu126 USE_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2 USE_RERANKING_MODEL= UID=0 GID=0 /bin/sh -c echo -n 00000000-0000-0000-0000-000000000000 > $HOME/.cache/chroma/telemetry_user_id # buildkit
2025-07-05 17:07:28 UTC (buildkit.dockerfile.v0)RUN |7 USE_CUDA=true USE_OLLAMA=false USE_CUDA_VER=cu126 USE_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2 USE_RERANKING_MODEL= UID=0 GID=0 /bin/sh -c chown -R $UID:$GID /app $HOME # buildkit
2025-07-05 17:09:24 UTC (buildkit.dockerfile.v0)RUN |7 USE_CUDA=true USE_OLLAMA=false USE_CUDA_VER=cu126 USE_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2 USE_RERANKING_MODEL= UID=0 GID=0 /bin/sh -c if [ "$USE_OLLAMA" = "true" ]; then apt-get update && apt-get install -y --no-install-recommends git build-essential pandoc netcat-openbsd curl && apt-get install -y --no-install-recommends gcc python3-dev && apt-get install -y --no-install-recommends ffmpeg libsm6 libxext6 && apt-get install -y --no-install-recommends curl jq && curl -fsSL https://ollama.com/install.sh | sh && rm -rf /var/lib/apt/lists/*; else apt-get update && apt-get install -y --no-install-recommends git build-essential pandoc gcc netcat-openbsd curl jq && apt-get install -y --no-install-recommends gcc python3-dev && apt-get install -y --no-install-recommends ffmpeg libsm6 libxext6 && rm -rf /var/lib/apt/lists/*; fi # buildkit
2025-07-19 17:41:04 UTC (buildkit.dockerfile.v0)COPY --chown=0:0 ./backend/requirements.txt ./requirements.txt # buildkit
2025-07-19 17:42:42 UTC (buildkit.dockerfile.v0)RUN |7 USE_CUDA=true USE_OLLAMA=false USE_CUDA_VER=cu126 USE_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2 USE_RERANKING_MODEL= UID=0 GID=0 /bin/sh -c pip3 install --no-cache-dir uv && if [ "$USE_CUDA" = "true" ]; then pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/$USE_CUDA_DOCKER_VER --no-cache-dir && uv pip install --system -r requirements.txt --no-cache-dir && python -c "import os; from sentence_transformers import SentenceTransformer; SentenceTransformer(os.environ['RAG_EMBEDDING_MODEL'], device='cpu')" && python -c "import os; from faster_whisper import WhisperModel; WhisperModel(os.environ['WHISPER_MODEL'], device='cpu', compute_type='int8', download_root=os.environ['WHISPER_MODEL_DIR'])"; python -c "import os; import tiktoken; tiktoken.get_encoding(os.environ['TIKTOKEN_ENCODING_NAME'])"; else pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu --no-cache-dir && uv pip install --system -r requirements.txt --no-cache-dir && python -c "import os; from sentence_transformers import SentenceTransformer; SentenceTransformer(os.environ['RAG_EMBEDDING_MODEL'], device='cpu')" && python -c "import os; from faster_whisper import WhisperModel; WhisperModel(os.environ['WHISPER_MODEL'], device='cpu', compute_type='int8', download_root=os.environ['WHISPER_MODEL_DIR'])"; python -c "import os; import tiktoken; tiktoken.get_encoding(os.environ['TIKTOKEN_ENCODING_NAME'])"; fi; chown -R $UID:$GID /app/backend/data/ # buildkit
2025-07-19 17:43:56 UTC (buildkit.dockerfile.v0)COPY --chown=0:0 /app/build /app/build # buildkit
2025-07-19 17:43:56 UTC (buildkit.dockerfile.v0)COPY --chown=0:0 /app/CHANGELOG.md /app/CHANGELOG.md # buildkit
2025-07-19 17:43:56 UTC (buildkit.dockerfile.v0)COPY --chown=0:0 /app/package.json /app/package.json # buildkit
2025-07-19 17:43:56 UTC (buildkit.dockerfile.v0)COPY --chown=0:0 ./backend . # buildkit
2025-07-19 17:43:56 UTC (buildkit.dockerfile.v0)EXPOSE map[8080/tcp:{}]
2025-07-19 17:43:56 UTC (buildkit.dockerfile.v0)HEALTHCHECK &{["CMD-SHELL" "curl --silent --fail http://localhost:${PORT:-8080}/health | jq -ne 'input.status == true' || exit 1"] "0s" "0s" "0s" "0s" '\x00'}
2025-07-19 17:43:56 UTC (buildkit.dockerfile.v0)USER 0:0
2025-07-19 17:43:56 UTC (buildkit.dockerfile.v0)ARG BUILD_HASH=b249809d2dff7bc89394a61ee5f7e258b295623a
2025-07-19 17:43:56 UTC (buildkit.dockerfile.v0)ENV WEBUI_BUILD_VERSION=b249809d2dff7bc89394a61ee5f7e258b295623a
2025-07-19 17:43:56 UTC (buildkit.dockerfile.v0)ENV DOCKER=true
2025-07-19 17:43:56 UTC (buildkit.dockerfile.v0)CMD ["bash" "start.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.