Namespace
mumujie
Image / Tag
mumuainovel:1.3.3
Content Digest
sha256:9146e0648635adcc0a334a17b8c2ea37faf6d9779d95245fde0aa3955fb51ab1
Details
Created

2026-01-29 07:51:06 UTC

Size

988 MB

Content Digest
Labels
  • org.opencontainers.image.created
    2026-01-29T07:49:57.227Z
  • org.opencontainers.image.description
    一款基于 AI 的智能小说创作助手,帮助你轻松创作精彩故事
  • org.opencontainers.image.licenses
    GPL-3.0
  • org.opencontainers.image.revision
    0b99e25927229be4b8cf1d3a7e3d779cded4116c
  • org.opencontainers.image.source
    https://github.com/xiamuceer-j/MuMuAINovel
  • org.opencontainers.image.title
    MuMuAINovel
  • org.opencontainers.image.url
    https://github.com/xiamuceer-j/MuMuAINovel
  • org.opencontainers.image.version
    1.3.3

Environment
APP_HOST

0.0.0.0

APP_PORT

8000

GPG_KEY

A035C8C19219BA821ECEA86B64E628F8D684696D

HF_DATASETS_OFFLINE

1

HF_HUB_OFFLINE

1

LANG

C.UTF-8

PATH

/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

PYTHONUNBUFFERED

1

PYTHON_SHA256

8d3ed8ec5c88c1c95f5e558612a725450d2452813ddad5e58fdb1a53b1209b78

PYTHON_VERSION

3.11.14

SENTENCE_TRANSFORMERS_HOME

/app/embedding

TRANSFORMERS_OFFLINE

1


Layers

[#000] sha256:119d43eec815e5f9a47da3a7d59454581b1e204b0c34db86f171b7ceb3336533 - 2.87% (28.4 MB)

[#001] sha256:5b09819094bb89d5b2416ff2fb03f68666a5372c358cfd22f2b62d7f6660d906 - 0.12% (1.23 MB)

[#002] sha256:3e731abb5c1dd05aef62585d392d31ad26089dc4c031730e5ab0225aef80b3f2 - 1.39% (13.7 MB)

[#003] sha256:0b2bf04f68e9f306a8a83f57c6ced322a23968bf3d5acebc07e055c090240826 - 0.0% (250 Bytes)

[#004] sha256:b88af32344962a95a0abbd8ca05ed8f7d494386a573e7afe6e389c2bdf5dd01e - 0.0% (93 Bytes)

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

[#006] sha256:2c0754d3b8d6bfe0aabd42b8980b7eb44a4bd14d8bea17dc5efe535226c57c01 - 8.59% (84.9 MB)

[#007] sha256:be589e901c21579306d788dec1b265273956a1c09e9351807d35b873c440d43c - 0.0% (681 Bytes)

[#008] sha256:692f1f1895549aa49a790ba81373b60727e018a358c1446c417dfe2391b3dd56 - 22.67% (224 MB)

[#009] sha256:7f8fda1394fa75bb1d5fc32bfd44a78a7d0e23118e1ad54bbe1afb32abce1793 - 21.78% (215 MB)

[#010] sha256:c94480f179f624bed307ffd1084898d62337f1391f7b0952ac7fc035a2af41c9 - 0.0% (118 Bytes)

[#011] sha256:211b0b1f8bd88c70c4e178cd64c9955ea9de5762119be5ea207371dcf14090fd - 42.35% (419 MB)

[#012] sha256:8a04828d900b47051daeeb601dc440b7885090c0fea2eb6c2620a1b9865eabc3 - 0.03% (343 KB)

[#013] sha256:cda68de101e9b2b6b92d4f5ae01cf615c7ef48bf1879d30dcff195a3fc30e7f0 - 0.19% (1.88 MB)

[#014] sha256:8b361f7cb121a16f19dbeee6ab1d687382907c1d25af29aeb22c5476445898d6 - 0.0% (685 Bytes)

[#015] sha256:75f4d55a63993802ec054cfa4b4e43b50d3c4b7def158794a49ec5413643030c - 0.0% (13.5 KB)

[#016] sha256:585ba9f5cbdb92803543536dad32d3d0850918f4f767f499f338e213adaf2110 - 0.0% (1.38 KB)

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

[#018] sha256:251e5626ec3e56105f72f99cf77a0d42105919132ed0f3623e2b42c675babff6 - 0.0% (1.37 KB)

[#019] sha256:df541edef99459ec6c9e2c3b367f54f9133f1e24f9007313b775d4ecfd28aad9 - 0.0% (126 Bytes)


History
2026-01-12 00:00:00 UTC (debuerreotype 0.17)

# debian.sh --arch 'amd64' out/ 'trixie' '@1768176000'

2026-01-13 03:06:57 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:57 UTC (buildkit.dockerfile.v0)

ENV LANG=C.UTF-8

2026-01-13 03:06:57 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates netbase tzdata ; apt-get dist-clean # buildkit

2026-01-13 03:06:57 UTC (buildkit.dockerfile.v0)

ENV GPG_KEY=A035C8C19219BA821ECEA86B64E628F8D684696D

2026-01-13 03:06:57 UTC (buildkit.dockerfile.v0)

ENV PYTHON_VERSION=3.11.14

2026-01-13 03:06:57 UTC (buildkit.dockerfile.v0)

ENV PYTHON_SHA256=8d3ed8ec5c88c1c95f5e558612a725450d2452813ddad5e58fdb1a53b1209b78

2026-01-13 03:14:21 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"; 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; apt-get dist-clean; export PYTHONDONTWRITEBYTECODE=1; python3 --version; pip3 install --disable-pip-version-check --no-cache-dir --no-compile 'setuptools==79.0.1' 'wheel<0.46' ; pip3 --version # buildkit

2026-01-13 03:14:21 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:14:21 UTC (buildkit.dockerfile.v0)

CMD ["python3"]

2026-01-22 07:01:49 UTC (buildkit.dockerfile.v0)

ARG USE_CN_MIRROR=false

2026-01-22 07:01:49 UTC (buildkit.dockerfile.v0)

ARG TARGETPLATFORM=linux/amd64

2026-01-22 07:01:49 UTC (buildkit.dockerfile.v0)

ARG TARGETARCH=amd64

2026-01-22 07:01:49 UTC (buildkit.dockerfile.v0)

WORKDIR /app

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

RUN |3 USE_CN_MIRROR=false TARGETPLATFORM=linux/amd64 TARGETARCH=amd64 /bin/sh -c if [ "$USE_CN_MIRROR" = "true" ]; then sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources && sed -i 's/security.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources; fi # buildkit

2026-01-22 07:02:07 UTC (buildkit.dockerfile.v0)

RUN |3 USE_CN_MIRROR=false TARGETPLATFORM=linux/amd64 TARGETARCH=amd64 /bin/sh -c apt-get update && apt-get install -y gcc postgresql-client netcat-traditional && rm -rf /var/lib/apt/lists/* # buildkit

2026-01-22 07:02:07 UTC (buildkit.dockerfile.v0)

COPY backend/requirements.txt ./ # buildkit

2026-01-22 07:02:40 UTC (buildkit.dockerfile.v0)

RUN |3 USE_CN_MIRROR=false TARGETPLATFORM=linux/amd64 TARGETARCH=amd64 /bin/sh -c if [ "$TARGETARCH" = "arm64" ]; then pip install --no-cache-dir torch --index-url https://download.pytorch.org/whl/cpu || pip install --no-cache-dir torch; else pip install --no-cache-dir torch --index-url https://download.pytorch.org/whl/cpu; fi # buildkit

2026-01-22 07:03:41 UTC (buildkit.dockerfile.v0)

RUN |3 USE_CN_MIRROR=false TARGETPLATFORM=linux/amd64 TARGETARCH=amd64 /bin/sh -c if [ "$USE_CN_MIRROR" = "true" ]; then pip install --no-cache-dir -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/; else pip install --no-cache-dir -r requirements.txt; fi # buildkit

2026-01-22 07:03:41 UTC (buildkit.dockerfile.v0)

RUN |3 USE_CN_MIRROR=false TARGETPLATFORM=linux/amd64 TARGETARCH=amd64 /bin/sh -c mkdir -p /app/embedding # buildkit

2026-01-22 07:03:41 UTC (buildkit.dockerfile.v0)

ENV SENTENCE_TRANSFORMERS_HOME=/app/embedding

2026-01-22 07:03:54 UTC (buildkit.dockerfile.v0)

RUN |3 USE_CN_MIRROR=false TARGETPLATFORM=linux/amd64 TARGETARCH=amd64 /bin/sh -c python -c "from sentence_transformers import SentenceTransformer; import os; os.environ['SENTENCE_TRANSFORMERS_HOME'] = '/app/embedding'; print('Downloading sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2...'); model = SentenceTransformer('sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2'); print('Model downloaded successfully!'); " # buildkit

2026-01-29 07:50:48 UTC (buildkit.dockerfile.v0)

COPY backend/ ./ # buildkit

2026-01-29 07:51:06 UTC (buildkit.dockerfile.v0)

COPY /frontend/dist ./static # buildkit

2026-01-29 07:51:06 UTC (buildkit.dockerfile.v0)

COPY backend/alembic-postgres.ini ./alembic.ini # buildkit

2026-01-29 07:51:06 UTC (buildkit.dockerfile.v0)

COPY backend/alembic/postgres ./alembic # buildkit

2026-01-29 07:51:06 UTC (buildkit.dockerfile.v0)

COPY backend/scripts/entrypoint.sh /app/entrypoint.sh # buildkit

2026-01-29 07:51:06 UTC (buildkit.dockerfile.v0)

COPY backend/scripts/migrate.py ./scripts/migrate.py # buildkit

2026-01-29 07:51:06 UTC (buildkit.dockerfile.v0)

RUN |3 USE_CN_MIRROR=false TARGETPLATFORM=linux/amd64 TARGETARCH=amd64 /bin/sh -c chmod +x /app/entrypoint.sh # buildkit

2026-01-29 07:51:06 UTC (buildkit.dockerfile.v0)

RUN |3 USE_CN_MIRROR=false TARGETPLATFORM=linux/amd64 TARGETARCH=amd64 /bin/sh -c mkdir -p /app/data /app/logs # buildkit

2026-01-29 07:51:06 UTC (buildkit.dockerfile.v0)

EXPOSE [8000/tcp]

2026-01-29 07:51:06 UTC (buildkit.dockerfile.v0)

ENV PYTHONUNBUFFERED=1

2026-01-29 07:51:06 UTC (buildkit.dockerfile.v0)

ENV APP_HOST=0.0.0.0

2026-01-29 07:51:06 UTC (buildkit.dockerfile.v0)

ENV APP_PORT=8000

2026-01-29 07:51:06 UTC (buildkit.dockerfile.v0)

ENV TRANSFORMERS_OFFLINE=1

2026-01-29 07:51:06 UTC (buildkit.dockerfile.v0)

ENV HF_DATASETS_OFFLINE=1

2026-01-29 07:51:06 UTC (buildkit.dockerfile.v0)

ENV HF_HUB_OFFLINE=1

2026-01-29 07:51:06 UTC (buildkit.dockerfile.v0)

HEALTHCHECK &{["CMD-SHELL" "python -c \"import urllib.request; urllib.request.urlopen('http://localhost:8000/health')\" || exit 1"] "30s" "10s" "5s" "0s" '\x03'}

2026-01-29 07:51:06 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["/app/entrypoint.sh"]

Details
Created

2026-01-29 07:55:28 UTC

Size

935 MB

Content Digest
Labels
  • org.opencontainers.image.created
    2026-01-29T07:49:57.227Z
  • org.opencontainers.image.description
    一款基于 AI 的智能小说创作助手,帮助你轻松创作精彩故事
  • org.opencontainers.image.licenses
    GPL-3.0
  • org.opencontainers.image.revision
    0b99e25927229be4b8cf1d3a7e3d779cded4116c
  • org.opencontainers.image.source
    https://github.com/xiamuceer-j/MuMuAINovel
  • org.opencontainers.image.title
    MuMuAINovel
  • org.opencontainers.image.url
    https://github.com/xiamuceer-j/MuMuAINovel
  • org.opencontainers.image.version
    1.3.3

Environment
APP_HOST

0.0.0.0

APP_PORT

8000

GPG_KEY

A035C8C19219BA821ECEA86B64E628F8D684696D

HF_DATASETS_OFFLINE

1

HF_HUB_OFFLINE

1

LANG

C.UTF-8

PATH

/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

PYTHONUNBUFFERED

1

PYTHON_SHA256

8d3ed8ec5c88c1c95f5e558612a725450d2452813ddad5e58fdb1a53b1209b78

PYTHON_VERSION

3.11.14

SENTENCE_TRANSFORMERS_HOME

/app/embedding

TRANSFORMERS_OFFLINE

1


Layers

[#000] sha256:d637807aba98f742a62ad9b0146579ceb0297a3c831f56b2361664b7f5fbc75b - 3.07% (28.7 MB)

[#001] sha256:d67bedf18e0abdffd887db745e6a45c9173ae1b93fd7fac8d7a8c6b2e5346455 - 0.13% (1.21 MB)

[#002] sha256:068949646e5ac13b4b3f99bca3f1249ca853fc5bd30512ea7d447af7a649b011 - 1.46% (13.7 MB)

[#003] sha256:518abaec573aacfc293edf9e19b26274fc7ee5d3448e80f90eecdae829acd7e7 - 0.0% (249 Bytes)

[#004] sha256:1c0e3a09afe3a6fe1adfb4f7431bb421ef811284fe81f3f510abcddafb2d6ae6 - 0.0% (93 Bytes)

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

[#006] sha256:dd7a491f4622022d48480cb8cc6ec97a3ad39a3e2d1c9f29a697e0c111dc57b5 - 8.49% (79.4 MB)

[#007] sha256:0d19989526605ab57d160341ab892a6a7db8b8ec53449e7672da99f7a927e2d0 - 0.0% (683 Bytes)

[#008] sha256:9e9879f51cb2a3f9077b3df8e7e8f006405572dbc867acb1daca3550f547881f - 19.64% (184 MB)

[#009] sha256:9091768dbfe41558ff411b4f9690913590b576cee852050009c0aba68851d5bb - 22.23% (208 MB)

[#010] sha256:e39609c7004ca8f970a6361ffed5fbad55cb8e4e07a5f84c17dff708a29c9e03 - 0.0% (119 Bytes)

[#011] sha256:7cdf0472e1987d42137deed9cc7fc7c408d37e00cd2ca4b7904f24ac46927854 - 44.74% (419 MB)

[#012] sha256:8a04828d900b47051daeeb601dc440b7885090c0fea2eb6c2620a1b9865eabc3 - 0.04% (343 KB)

[#013] sha256:6c7a0d2aded5b541f67631d396824f726c8a04b1605ecd39e6488c17ffd4eb8c - 0.2% (1.88 MB)

[#014] sha256:7bbcf0feda700e647af22059232fb4e8601e2376617e428f25d208786858cb7c - 0.0% (686 Bytes)

[#015] sha256:6233d82a2582302c2a64e51cf3657f93a776e15bf8860de15cd6132c7ac625b2 - 0.0% (13.5 KB)

[#016] sha256:e273af27d73218baf3bd67ae782fe1110c31b764168be45293a793ecfd5c6941 - 0.0% (1.38 KB)

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

[#018] sha256:c1afa90dedf3d8293f66b6e19e91a35812674aba3a90a920e5b343b97e715df0 - 0.0% (1.37 KB)

[#019] sha256:4314177f2bc97a983e2521b1f3c4531370d581c893750cbf246649f5e85bde5f - 0.0% (126 Bytes)


History
2026-01-12 00:00:00 UTC (debuerreotype 0.17)

# debian.sh --arch 'arm64' out/ 'trixie' '@1768176000'

2026-01-13 03:11:19 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:11:19 UTC (buildkit.dockerfile.v0)

ENV LANG=C.UTF-8

2026-01-13 03:11:19 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates netbase tzdata ; apt-get dist-clean # buildkit

2026-01-13 03:11:19 UTC (buildkit.dockerfile.v0)

ENV GPG_KEY=A035C8C19219BA821ECEA86B64E628F8D684696D

2026-01-13 03:11:19 UTC (buildkit.dockerfile.v0)

ENV PYTHON_VERSION=3.11.14

2026-01-13 03:11:19 UTC (buildkit.dockerfile.v0)

ENV PYTHON_SHA256=8d3ed8ec5c88c1c95f5e558612a725450d2452813ddad5e58fdb1a53b1209b78

2026-01-13 03:22:25 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"; 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; apt-get dist-clean; export PYTHONDONTWRITEBYTECODE=1; python3 --version; pip3 install --disable-pip-version-check --no-cache-dir --no-compile 'setuptools==79.0.1' 'wheel<0.46' ; pip3 --version # buildkit

2026-01-13 03:22:25 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:25 UTC (buildkit.dockerfile.v0)

CMD ["python3"]

2026-01-22 07:01:49 UTC (buildkit.dockerfile.v0)

ARG USE_CN_MIRROR=false

2026-01-22 07:01:49 UTC (buildkit.dockerfile.v0)

ARG TARGETPLATFORM=linux/arm64

2026-01-22 07:01:49 UTC (buildkit.dockerfile.v0)

ARG TARGETARCH=arm64

2026-01-22 07:01:49 UTC (buildkit.dockerfile.v0)

WORKDIR /app

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

RUN |3 USE_CN_MIRROR=false TARGETPLATFORM=linux/arm64 TARGETARCH=arm64 /bin/sh -c if [ "$USE_CN_MIRROR" = "true" ]; then sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources && sed -i 's/security.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources; fi # buildkit

2026-01-22 07:04:20 UTC (buildkit.dockerfile.v0)

RUN |3 USE_CN_MIRROR=false TARGETPLATFORM=linux/arm64 TARGETARCH=arm64 /bin/sh -c apt-get update && apt-get install -y gcc postgresql-client netcat-traditional && rm -rf /var/lib/apt/lists/* # buildkit

2026-01-22 07:04:20 UTC (buildkit.dockerfile.v0)

COPY backend/requirements.txt ./ # buildkit

2026-01-22 07:09:31 UTC (buildkit.dockerfile.v0)

RUN |3 USE_CN_MIRROR=false TARGETPLATFORM=linux/arm64 TARGETARCH=arm64 /bin/sh -c if [ "$TARGETARCH" = "arm64" ]; then pip install --no-cache-dir torch --index-url https://download.pytorch.org/whl/cpu || pip install --no-cache-dir torch; else pip install --no-cache-dir torch --index-url https://download.pytorch.org/whl/cpu; fi # buildkit

2026-01-22 07:19:30 UTC (buildkit.dockerfile.v0)

RUN |3 USE_CN_MIRROR=false TARGETPLATFORM=linux/arm64 TARGETARCH=arm64 /bin/sh -c if [ "$USE_CN_MIRROR" = "true" ]; then pip install --no-cache-dir -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/; else pip install --no-cache-dir -r requirements.txt; fi # buildkit

2026-01-22 07:19:30 UTC (buildkit.dockerfile.v0)

RUN |3 USE_CN_MIRROR=false TARGETPLATFORM=linux/arm64 TARGETARCH=arm64 /bin/sh -c mkdir -p /app/embedding # buildkit

2026-01-22 07:19:30 UTC (buildkit.dockerfile.v0)

ENV SENTENCE_TRANSFORMERS_HOME=/app/embedding

2026-01-22 07:22:48 UTC (buildkit.dockerfile.v0)

RUN |3 USE_CN_MIRROR=false TARGETPLATFORM=linux/arm64 TARGETARCH=arm64 /bin/sh -c python -c "from sentence_transformers import SentenceTransformer; import os; os.environ['SENTENCE_TRANSFORMERS_HOME'] = '/app/embedding'; print('Downloading sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2...'); model = SentenceTransformer('sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2'); print('Model downloaded successfully!'); " # buildkit

2026-01-29 07:50:48 UTC (buildkit.dockerfile.v0)

COPY backend/ ./ # buildkit

2026-01-29 07:55:28 UTC (buildkit.dockerfile.v0)

COPY /frontend/dist ./static # buildkit

2026-01-29 07:55:28 UTC (buildkit.dockerfile.v0)

COPY backend/alembic-postgres.ini ./alembic.ini # buildkit

2026-01-29 07:55:28 UTC (buildkit.dockerfile.v0)

COPY backend/alembic/postgres ./alembic # buildkit

2026-01-29 07:55:28 UTC (buildkit.dockerfile.v0)

COPY backend/scripts/entrypoint.sh /app/entrypoint.sh # buildkit

2026-01-29 07:55:28 UTC (buildkit.dockerfile.v0)

COPY backend/scripts/migrate.py ./scripts/migrate.py # buildkit

2026-01-29 07:55:28 UTC (buildkit.dockerfile.v0)

RUN |3 USE_CN_MIRROR=false TARGETPLATFORM=linux/arm64 TARGETARCH=arm64 /bin/sh -c chmod +x /app/entrypoint.sh # buildkit

2026-01-29 07:55:28 UTC (buildkit.dockerfile.v0)

RUN |3 USE_CN_MIRROR=false TARGETPLATFORM=linux/arm64 TARGETARCH=arm64 /bin/sh -c mkdir -p /app/data /app/logs # buildkit

2026-01-29 07:55:28 UTC (buildkit.dockerfile.v0)

EXPOSE [8000/tcp]

2026-01-29 07:55:28 UTC (buildkit.dockerfile.v0)

ENV PYTHONUNBUFFERED=1

2026-01-29 07:55:28 UTC (buildkit.dockerfile.v0)

ENV APP_HOST=0.0.0.0

2026-01-29 07:55:28 UTC (buildkit.dockerfile.v0)

ENV APP_PORT=8000

2026-01-29 07:55:28 UTC (buildkit.dockerfile.v0)

ENV TRANSFORMERS_OFFLINE=1

2026-01-29 07:55:28 UTC (buildkit.dockerfile.v0)

ENV HF_DATASETS_OFFLINE=1

2026-01-29 07:55:28 UTC (buildkit.dockerfile.v0)

ENV HF_HUB_OFFLINE=1

2026-01-29 07:55:28 UTC (buildkit.dockerfile.v0)

HEALTHCHECK &{["CMD-SHELL" "python -c \"import urllib.request; urllib.request.urlopen('http://localhost:8000/health')\" || exit 1"] "30s" "10s" "5s" "0s" '\x03'}

2026-01-29 07:55:28 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["/app/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