Namespace
mumujie
Image / Tag
mumuainovel:sha-86fbdad
Content Digest
sha256:8ddc1829fd3705125ed34ee5e6d83b49377a9d09addd4b1c313f55969bbad6cb
Details
Created

2026-03-24 03:47:02 UTC

Size

4.45 GB

Content Digest
Labels
  • org.opencontainers.image.created
    2026-03-24T03:43:32.122Z
  • org.opencontainers.image.description
    一款基于 AI 的智能小说创作助手,帮助你轻松创作精彩故事
  • org.opencontainers.image.licenses
    GPL-3.0
  • org.opencontainers.image.revision
    86fbdada29d3725d9cdcf9a8e32c09fe674e4413
  • 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.4.4

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

272179ddd9a2e41a0fc8e42e33dfbdca0b3711aa5abf372d3f2d51543d09b625

PYTHON_VERSION

3.11.15

SENTENCE_TRANSFORMERS_HOME

/app/embedding

TRANSFORMERS_OFFLINE

1


Layers

[#000] sha256:ec781dee3f4719c2ca0dd9e73cb1d4ed834ed1a406495eb6e44b6dfaad5d1f8f - 0.62% (28.4 MB)

[#001] sha256:6944007a5b45fe41656cd72b1691b1419bf9d39641e7afbc937f3a3abd07e575 - 0.03% (1.23 MB)

[#002] sha256:e35b92e2619d5152fbb45e6ccb02dbb1007c5784ad19a5e235bf05ca6e226a88 - 0.3% (13.7 MB)

[#003] sha256:7524aba74b8cc45ff3cf2f089fd9a638dfd58b001763194d0819c8d7c75d598f - 0.0% (250 Bytes)

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

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

[#006] sha256:e8fec765e249537a920a4129b3378794f7c9567e33df57bd5651e3e79d46d0e5 - 1.86% (84.9 MB)

[#007] sha256:1836c1601981d213288224e8310fa323a770b49f3b128ad5b30625d310cef2d4 - 0.0% (728 Bytes)

[#008] sha256:779d2475556c545d63a781bfb4a7e73798f68f07409b20880dd65fb647e83a0b - 87.95% (3.92 GB)

[#009] sha256:210a3466b7705afd731445071e35c903f5338f56745bcafd13cdbd8cb12b00c1 - 0.0% (119 Bytes)

[#010] sha256:c390d2354150520249d844217e15b0739b69e7245fa77e1b4687c2b1328a5a9d - 9.18% (419 MB)

[#011] sha256:e8f2d7030bf4cfd546564ecf2ae2226a877ea5947c7f01c604ecc762df463a68 - 0.01% (401 KB)

[#012] sha256:f843463dd580679b0cf415a935dad2b3a18972a1b1810255351485644e86608c - 0.04% (1.92 MB)

[#013] sha256:09b7ee77d48b37aba0bfdd5b7f6fa6175f06d44f00b494f6f71d1c4663827cb4 - 0.0% (685 Bytes)

[#014] sha256:795f692ef4d5474a7c416574ceda090f296ca84d59ea2dd5ef6c7aa13568c089 - 0.0% (14.9 KB)

[#015] sha256:930987de04a32bc0ed5c3c7139b53b031a92dd4e84f8598be66a3669b7c8e5b8 - 0.0% (1.38 KB)

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

[#017] sha256:f5bf97cb7c01a79093e6184438f08c41ec0bd27d75f778ba2192f2aff40ad34c - 0.0% (1.37 KB)

[#018] sha256:fca13c74b36d0341ab0117e5bffb99f9d15bf4aab1e1c753ba20699c83e43f01 - 0.0% (126 Bytes)


History
2026-03-16 00:00:00 UTC (debuerreotype 0.17)

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

2026-03-16 23:02:00 UTC (buildkit.dockerfile.v0)

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

2026-03-16 23:02:00 UTC (buildkit.dockerfile.v0)

ENV LANG=C.UTF-8

2026-03-16 23:02:00 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-03-16 23:02:00 UTC (buildkit.dockerfile.v0)

ENV GPG_KEY=A035C8C19219BA821ECEA86B64E628F8D684696D

2026-03-16 23:02:00 UTC (buildkit.dockerfile.v0)

ENV PYTHON_VERSION=3.11.15

2026-03-16 23:02:00 UTC (buildkit.dockerfile.v0)

ENV PYTHON_SHA256=272179ddd9a2e41a0fc8e42e33dfbdca0b3711aa5abf372d3f2d51543d09b625

2026-03-16 23:10:17 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-03-16 23:10:17 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-03-16 23:10:17 UTC (buildkit.dockerfile.v0)

CMD ["python3"]

2026-03-24 03:43:38 UTC (buildkit.dockerfile.v0)

ARG USE_CN_MIRROR=false

2026-03-24 03:43:38 UTC (buildkit.dockerfile.v0)

ARG TARGETPLATFORM=linux/amd64

2026-03-24 03:43:38 UTC (buildkit.dockerfile.v0)

ARG TARGETARCH=amd64

2026-03-24 03:43:38 UTC (buildkit.dockerfile.v0)

WORKDIR /app

2026-03-24 03:43:38 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-03-24 03:43:55 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-03-24 03:43:55 UTC (buildkit.dockerfile.v0)

COPY backend/requirements.txt ./ # buildkit

2026-03-24 03:46:46 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-03-24 03:46:47 UTC (buildkit.dockerfile.v0)

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

2026-03-24 03:46:47 UTC (buildkit.dockerfile.v0)

ENV SENTENCE_TRANSFORMERS_HOME=/app/embedding

2026-03-24 03:47:01 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-03-24 03:47:01 UTC (buildkit.dockerfile.v0)

COPY backend/ ./ # buildkit

2026-03-24 03:47:02 UTC (buildkit.dockerfile.v0)

COPY /frontend/dist ./static # buildkit

2026-03-24 03:47:02 UTC (buildkit.dockerfile.v0)

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

2026-03-24 03:47:02 UTC (buildkit.dockerfile.v0)

COPY backend/alembic/postgres ./alembic # buildkit

2026-03-24 03:47:02 UTC (buildkit.dockerfile.v0)

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

2026-03-24 03:47:02 UTC (buildkit.dockerfile.v0)

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

2026-03-24 03:47:02 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-03-24 03:47:02 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-03-24 03:47:02 UTC (buildkit.dockerfile.v0)

EXPOSE [8000/tcp]

2026-03-24 03:47:02 UTC (buildkit.dockerfile.v0)

ENV PYTHONUNBUFFERED=1

2026-03-24 03:47:02 UTC (buildkit.dockerfile.v0)

ENV APP_HOST=0.0.0.0

2026-03-24 03:47:02 UTC (buildkit.dockerfile.v0)

ENV APP_PORT=8000

2026-03-24 03:47:02 UTC (buildkit.dockerfile.v0)

ENV TRANSFORMERS_OFFLINE=1

2026-03-24 03:47:02 UTC (buildkit.dockerfile.v0)

ENV HF_DATASETS_OFFLINE=1

2026-03-24 03:47:02 UTC (buildkit.dockerfile.v0)

ENV HF_HUB_OFFLINE=1

2026-03-24 03:47:02 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-03-24 03:47:02 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["/app/entrypoint.sh"]

Details
Created

2026-03-24 04:02:52 UTC

Size

894 MB

Content Digest
Labels
  • org.opencontainers.image.created
    2026-03-24T03:43:32.122Z
  • org.opencontainers.image.description
    一款基于 AI 的智能小说创作助手,帮助你轻松创作精彩故事
  • org.opencontainers.image.licenses
    GPL-3.0
  • org.opencontainers.image.revision
    86fbdada29d3725d9cdcf9a8e32c09fe674e4413
  • 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.4.4

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

272179ddd9a2e41a0fc8e42e33dfbdca0b3711aa5abf372d3f2d51543d09b625

PYTHON_VERSION

3.11.15

SENTENCE_TRANSFORMERS_HOME

/app/embedding

TRANSFORMERS_OFFLINE

1


Layers

[#000] sha256:f4badedbec24858ef2dc51256f6418328e305e9c3c5a5e093581f83425618bd5 - 3.21% (28.7 MB)

[#001] sha256:b4822ed67dff6dee67342a10debf327642a6d8f6a65b7080bbf4d3d8e048e6fc - 0.14% (1.21 MB)

[#002] sha256:d6c44f24ac6d3ed8e0f59c89c5dd485f80db5404d3710e5289d970d53889f49b - 1.53% (13.7 MB)

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

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

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

[#006] sha256:c7a131d874603f12bd9dac47dfce1d6a7d25330e61b4339c5021d5a8e7d5c643 - 8.88% (79.4 MB)

[#007] sha256:1e0a79f7bf9c5d358e3b9bc66740be967e43a79b989579b20a2f8ed7fde4be87 - 0.0% (728 Bytes)

[#008] sha256:6330e63cf12f0797796369fdd124123fdf769b1a01b246cb7c7a1d7d1f1c6345 - 39.17% (350 MB)

[#009] sha256:c6e1d4a6144b66a2b1c5dc3447b4083f2f854295ad3210557c3fc42b722f4f01 - 0.0% (119 Bytes)

[#010] sha256:ba05711d29dafdcf38fb80928f5aea9442a20d184edc3c58ebcf35276490159b - 46.81% (419 MB)

[#011] sha256:e8f2d7030bf4cfd546564ecf2ae2226a877ea5947c7f01c604ecc762df463a68 - 0.04% (401 KB)

[#012] sha256:499b9462a350258cd9bda9050b99475582ccdcf847349a74720454046d4d1a4e - 0.22% (1.92 MB)

[#013] sha256:3b81b433af535289e07dd8d8fc04e2e516262f0eb1441b0ef91602b1269a45de - 0.0% (685 Bytes)

[#014] sha256:84086bfa4cc7b2fe857c6bd7121965b893f4ef2433a3d1a657b66ccdafffa173 - 0.0% (14.9 KB)

[#015] sha256:dd875481b900886c8385b4b1834fab62dce7d3d7f913aa872a450da1c401b196 - 0.0% (1.38 KB)

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

[#017] sha256:2d71502d55212cb398edd090c5cf1c9ee123c86a12de6e3ef0a443120a1b478d - 0.0% (1.37 KB)

[#018] sha256:a4cf7f7275b1fbecef035a0112b67078c3838b1299adea2e6501eef4ebbf346c - 0.0% (125 Bytes)


History
2026-03-16 00:00:00 UTC (debuerreotype 0.17)

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

2026-03-16 23:04:23 UTC (buildkit.dockerfile.v0)

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

2026-03-16 23:04:23 UTC (buildkit.dockerfile.v0)

ENV LANG=C.UTF-8

2026-03-16 23:04:23 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-03-16 23:04:23 UTC (buildkit.dockerfile.v0)

ENV GPG_KEY=A035C8C19219BA821ECEA86B64E628F8D684696D

2026-03-16 23:04:23 UTC (buildkit.dockerfile.v0)

ENV PYTHON_VERSION=3.11.15

2026-03-16 23:04:23 UTC (buildkit.dockerfile.v0)

ENV PYTHON_SHA256=272179ddd9a2e41a0fc8e42e33dfbdca0b3711aa5abf372d3f2d51543d09b625

2026-03-16 23:15:42 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-03-16 23:15:43 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-03-16 23:15:43 UTC (buildkit.dockerfile.v0)

CMD ["python3"]

2026-03-24 03:43:38 UTC (buildkit.dockerfile.v0)

ARG USE_CN_MIRROR=false

2026-03-24 03:43:38 UTC (buildkit.dockerfile.v0)

ARG TARGETPLATFORM=linux/arm64

2026-03-24 03:43:38 UTC (buildkit.dockerfile.v0)

ARG TARGETARCH=arm64

2026-03-24 03:43:38 UTC (buildkit.dockerfile.v0)

WORKDIR /app

2026-03-24 03:43:38 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-03-24 03:46:26 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-03-24 03:46:27 UTC (buildkit.dockerfile.v0)

COPY backend/requirements.txt ./ # buildkit

2026-03-24 04:01:32 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-03-24 04:01:32 UTC (buildkit.dockerfile.v0)

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

2026-03-24 04:01:32 UTC (buildkit.dockerfile.v0)

ENV SENTENCE_TRANSFORMERS_HOME=/app/embedding

2026-03-24 04:02:52 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-03-24 04:02:52 UTC (buildkit.dockerfile.v0)

COPY backend/ ./ # buildkit

2026-03-24 04:02:52 UTC (buildkit.dockerfile.v0)

COPY /frontend/dist ./static # buildkit

2026-03-24 04:02:52 UTC (buildkit.dockerfile.v0)

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

2026-03-24 04:02:52 UTC (buildkit.dockerfile.v0)

COPY backend/alembic/postgres ./alembic # buildkit

2026-03-24 04:02:52 UTC (buildkit.dockerfile.v0)

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

2026-03-24 04:02:52 UTC (buildkit.dockerfile.v0)

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

2026-03-24 04:02:52 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-03-24 04:02:52 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-03-24 04:02:52 UTC (buildkit.dockerfile.v0)

EXPOSE [8000/tcp]

2026-03-24 04:02:52 UTC (buildkit.dockerfile.v0)

ENV PYTHONUNBUFFERED=1

2026-03-24 04:02:52 UTC (buildkit.dockerfile.v0)

ENV APP_HOST=0.0.0.0

2026-03-24 04:02:52 UTC (buildkit.dockerfile.v0)

ENV APP_PORT=8000

2026-03-24 04:02:52 UTC (buildkit.dockerfile.v0)

ENV TRANSFORMERS_OFFLINE=1

2026-03-24 04:02:52 UTC (buildkit.dockerfile.v0)

ENV HF_DATASETS_OFFLINE=1

2026-03-24 04:02:52 UTC (buildkit.dockerfile.v0)

ENV HF_HUB_OFFLINE=1

2026-03-24 04:02:52 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-03-24 04:02:52 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