2026-05-06 16:38:45 UTC
552 MB
:99
GPG_KEY7169605F62C751356D054A26A821E680E5FA6305
LANGC.UTF-8
PATH/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PYTHON_SHA256c08bc65a81971c1dd5783182826503369466c7e67374d1646519adf05207b684
PYTHON_VERSION3.12.13
[#000] sha256:3531af2bc2a9c8883754652783cf96207d53189db279c9637b7157d034de7ecd - 5.15% (28.4 MB)
[#001] sha256:cb8c0a9140ac107575972113eb5fd2e6c3cdddc592371a5ac31c4623dcb13d5d - 0.22% (1.23 MB)
[#002] sha256:4d873bcef452ab1c054b9a0f25ace04a446c558a7b925aed2fc5bc21533e0f65 - 2.09% (11.5 MB)
[#003] sha256:3fc9d9ab5045181fbd49d1d30a2dbad144172d4c3c141f70117ddb0b918d8357 - 0.0% (248 Bytes)
[#004] sha256:968f3791806913d1f7dca1b0f13ee91c8977f217efeb636b86659ca4c3e5e8c4 - 36.66% (202 MB)
[#005] sha256:b531780bd428c06c6225844b18dd4df26523ee44bb1bbee5b8cbcc42088e7edc - 0.0% (92 Bytes)
[#006] sha256:4595426360dca3882cbb2ee703f19b7ba26beff10c6e940f28ea666b8dad72b3 - 0.0% (27.7 KB)
[#007] sha256:14ec5fe66e4fcbc7b307f402d10f1c595a06970c0e51a052efaec5e9c96076c7 - 0.01% (36.7 KB)
[#008] sha256:5e261b91829d2b6f3431e04d62bfd735c0607eec551b151d18f461df6b823a80 - 10.24% (56.5 MB)
[#009] sha256:090609823b7e2eb211356f5623254dba574c6a799eaa1f6f5296799dd9a9789f - 0.02% (106 KB)
[#010] sha256:83db7ab690f6f21a44df54f578ddf0681de6172617e5301f24b1acb369bbc573 - 7.39% (40.8 MB)
[#011] sha256:daacd3815e41b1684d1583bdcc61b922fec15cd78f30e42a50c1af76c4a5519d - 0.0% (21.1 KB)
[#012] sha256:cd6e273d359b9b03e7692509b0e56baae8ca41aa3be3073f9135dcd156463b57 - 38.2% (211 MB)
[#013] sha256:25ea656fb262f72c4de7bab6358a35a01ac5f4ed5f11641d1dffe9ffcc244047 - 0.0% (264 Bytes)
[#014] sha256:de117d5861306f90de54bcfe7cc8cde221549f89238d6f00811e350ab59d39e3 - 0.0% (6.24 KB)
[#015] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)
[#016] sha256:4d071de56802dfe611f7f6d17b81be2bcba3b924b46877af95e7f2c1094a81db - 0.0% (237 Bytes)
[#017] sha256:52869b8611795a98cde1635002bbed08096d159e0419bd5eb6b17db449b8b7e4 - 0.0% (235 Bytes)
# debian.sh --arch 'amd64' out/ 'trixie' '@1776729600'
2026-04-22 02:01:28 UTC (buildkit.dockerfile.v0)ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2026-04-22 02:01:28 UTC (buildkit.dockerfile.v0)ENV LANG=C.UTF-8
2026-04-22 02:01:28 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-04-22 02:01:28 UTC (buildkit.dockerfile.v0)ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305
2026-04-22 02:01:28 UTC (buildkit.dockerfile.v0)ENV PYTHON_VERSION=3.12.13
2026-04-22 02:01:28 UTC (buildkit.dockerfile.v0)ENV PYTHON_SHA256=c08bc65a81971c1dd5783182826503369466c7e67374d1646519adf05207b684
2026-04-22 02:10: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"; 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; apt-get dist-clean; export PYTHONDONTWRITEBYTECODE=1; python3 --version; pip3 --version # buildkit
2026-04-22 02:10: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-04-22 02:10:21 UTC (buildkit.dockerfile.v0)CMD ["python3"]
2026-05-06 16:37:58 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c apt-get update && apt-get install -y --no-install-recommends libnss3 libnspr4 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdbus-1-3 libdrm2 libxkbcommon0 libatspi2.0-0 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libgbm1 libpango-1.0-0 libcairo2 libasound2 libx11-xcb1 libfontconfig1 libx11-6 libxcb1 libxext6 libxshmfence1 libglib2.0-0 libgtk-3-0 libpangocairo-1.0-0 libcairo-gobject2 libgdk-pixbuf-2.0-0 libxss1 libxtst6 fonts-liberation fonts-noto-color-emoji fonts-unifont fonts-freefont-ttf fonts-ipafont-gothic fonts-wqy-zenhei fonts-tlwg-loma-otf xvfb xdotool curl ca-certificates && curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && apt-get install -y --no-install-recommends nodejs && rm -rf /var/lib/apt/lists/* # buildkit
2026-05-06 16:37:58 UTC (buildkit.dockerfile.v0)WORKDIR /app
2026-05-06 16:37:58 UTC (buildkit.dockerfile.v0)COPY pyproject.toml README.md LICENSE BINARY-LICENSE.md CHANGELOG.md ./ # buildkit
2026-05-06 16:37:58 UTC (buildkit.dockerfile.v0)COPY cloakbrowser/ cloakbrowser/ # buildkit
2026-05-06 16:38:09 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c pip install --no-cache-dir ".[serve,geoip]" # buildkit
2026-05-06 16:38:09 UTC (buildkit.dockerfile.v0)COPY js/ js/ # buildkit
2026-05-06 16:38:15 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c cd js && npm install && npm run build # buildkit
2026-05-06 16:38:15 UTC (buildkit.dockerfile.v0)COPY examples/ examples/ # buildkit
2026-05-06 16:38:45 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c python -c "from cloakbrowser import ensure_binary; ensure_binary()" && rm -f ~/.cloakbrowser/.welcome_shown # buildkit
2026-05-06 16:38:45 UTC (buildkit.dockerfile.v0)COPY bin/cloaktest /usr/local/bin/cloaktest # buildkit
2026-05-06 16:38:45 UTC (buildkit.dockerfile.v0)COPY bin/cloakserve /usr/local/bin/cloakserve # buildkit
2026-05-06 16:38:45 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c chmod +x /usr/local/bin/cloaktest /usr/local/bin/cloakserve # buildkit
2026-05-06 16:38:45 UTC (buildkit.dockerfile.v0)EXPOSE [9222/tcp]
2026-05-06 16:38:45 UTC (buildkit.dockerfile.v0)COPY bin/docker-entrypoint.sh /entrypoint.sh # buildkit
2026-05-06 16:38:45 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c chmod +x /entrypoint.sh # buildkit
2026-05-06 16:38:45 UTC (buildkit.dockerfile.v0)ENV DISPLAY=:99
2026-05-06 16:38:45 UTC (buildkit.dockerfile.v0)ENTRYPOINT ["/entrypoint.sh"]
2026-05-06 16:38:45 UTC (buildkit.dockerfile.v0)CMD ["python"]
2026-05-06 16:46:02 UTC
542 MB
:99
GPG_KEY7169605F62C751356D054A26A821E680E5FA6305
LANGC.UTF-8
PATH/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PYTHON_SHA256c08bc65a81971c1dd5783182826503369466c7e67374d1646519adf05207b684
PYTHON_VERSION3.12.13
[#000] sha256:e4fb5f1cd4d4ee56da574ef5ed88a5c74f100ba98caacf6c5ef26cee66525179 - 5.31% (28.7 MB)
[#001] sha256:842d7487c7fe0e9db7e485373e7f800352f53a9af6a56199f9cbef4a23e1c121 - 0.22% (1.21 MB)
[#002] sha256:9fc7e7ec660107ac0ddb23a67c07ecca9785c09efd5e66ab24f5bd5cfa898640 - 2.12% (11.5 MB)
[#003] sha256:2134fe3fab671b9c20965da51065213c07cef9e15cf1411dffe5dfce3300b6a3 - 0.0% (249 Bytes)
[#004] sha256:41788ac65ec1db9b105f9b6cf5e836625569a2d483bda6f4335048e3d9fecf8c - 36.71% (199 MB)
[#005] sha256:229316622b308ca11b51120cf812aa3993a69f8728cc3dbb367cda4e9009932c - 0.0% (92 Bytes)
[#006] sha256:a05dd4d609f2ba78274c74111b399b970c95e714d274ae9777815ec8a2604fd3 - 0.0% (27.7 KB)
[#007] sha256:9407b1c49f018ddde7c09745f5bf25e291738c2182479bbf4cda20038204537b - 0.01% (36.7 KB)
[#008] sha256:526d06c8f32ab1ef4a0467154424f241d91c72465a4c09a2f34d05e951380fe2 - 10.43% (56.5 MB)
[#009] sha256:ebd09dc59b350e661ae8403a0f4d96e3845996f933de59fc9218e652452e6f14 - 0.02% (106 KB)
[#010] sha256:cdde1d7810f132c268044b035033dc106b25e3e1abc46dbf04fb0b3f6cb3d669 - 7.36% (39.9 MB)
[#011] sha256:e4a4c70009390abca7e4e874f5e79c0d5177fd05bd2b1ce86c49390ef87ead1c - 0.0% (21.1 KB)
[#012] sha256:a05bab61647d2c8bf5dabec154eb95d745e3e5c7bf9679d5ef37af4cc7f7cde7 - 37.82% (205 MB)
[#013] sha256:7c81285f94cbe3532f94e40daef4a962e9414c213c2f06de61a982485e46c6de - 0.0% (266 Bytes)
[#014] sha256:f729d3c5bee7e526e855a96521bff4360a6326e8bccf89d97ea18f5091df9112 - 0.0% (6.25 KB)
[#015] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)
[#016] sha256:4d071de56802dfe611f7f6d17b81be2bcba3b924b46877af95e7f2c1094a81db - 0.0% (237 Bytes)
[#017] sha256:52869b8611795a98cde1635002bbed08096d159e0419bd5eb6b17db449b8b7e4 - 0.0% (235 Bytes)
# debian.sh --arch 'arm64' out/ 'trixie' '@1776729600'
2026-04-22 02:03:42 UTC (buildkit.dockerfile.v0)ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2026-04-22 02:03:42 UTC (buildkit.dockerfile.v0)ENV LANG=C.UTF-8
2026-04-22 02:03:42 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-04-22 02:03:42 UTC (buildkit.dockerfile.v0)ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305
2026-04-22 02:03:42 UTC (buildkit.dockerfile.v0)ENV PYTHON_VERSION=3.12.13
2026-04-22 02:03:42 UTC (buildkit.dockerfile.v0)ENV PYTHON_SHA256=c08bc65a81971c1dd5783182826503369466c7e67374d1646519adf05207b684
2026-04-22 02:15:16 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; apt-get dist-clean; export PYTHONDONTWRITEBYTECODE=1; python3 --version; pip3 --version # buildkit
2026-04-22 02:15:16 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-04-22 02:15:16 UTC (buildkit.dockerfile.v0)CMD ["python3"]
2026-05-06 16:42:23 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c apt-get update && apt-get install -y --no-install-recommends libnss3 libnspr4 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdbus-1-3 libdrm2 libxkbcommon0 libatspi2.0-0 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libgbm1 libpango-1.0-0 libcairo2 libasound2 libx11-xcb1 libfontconfig1 libx11-6 libxcb1 libxext6 libxshmfence1 libglib2.0-0 libgtk-3-0 libpangocairo-1.0-0 libcairo-gobject2 libgdk-pixbuf-2.0-0 libxss1 libxtst6 fonts-liberation fonts-noto-color-emoji fonts-unifont fonts-freefont-ttf fonts-ipafont-gothic fonts-wqy-zenhei fonts-tlwg-loma-otf xvfb xdotool curl ca-certificates && curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && apt-get install -y --no-install-recommends nodejs && rm -rf /var/lib/apt/lists/* # buildkit
2026-05-06 16:42:23 UTC (buildkit.dockerfile.v0)WORKDIR /app
2026-05-06 16:42:23 UTC (buildkit.dockerfile.v0)COPY pyproject.toml README.md LICENSE BINARY-LICENSE.md CHANGELOG.md ./ # buildkit
2026-05-06 16:42:23 UTC (buildkit.dockerfile.v0)COPY cloakbrowser/ cloakbrowser/ # buildkit
2026-05-06 16:43:51 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c pip install --no-cache-dir ".[serve,geoip]" # buildkit
2026-05-06 16:43:51 UTC (buildkit.dockerfile.v0)COPY js/ js/ # buildkit
2026-05-06 16:44:54 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c cd js && npm install && npm run build # buildkit
2026-05-06 16:44:54 UTC (buildkit.dockerfile.v0)COPY examples/ examples/ # buildkit
2026-05-06 16:46:01 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c python -c "from cloakbrowser import ensure_binary; ensure_binary()" && rm -f ~/.cloakbrowser/.welcome_shown # buildkit
2026-05-06 16:46:01 UTC (buildkit.dockerfile.v0)COPY bin/cloaktest /usr/local/bin/cloaktest # buildkit
2026-05-06 16:46:01 UTC (buildkit.dockerfile.v0)COPY bin/cloakserve /usr/local/bin/cloakserve # buildkit
2026-05-06 16:46:01 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c chmod +x /usr/local/bin/cloaktest /usr/local/bin/cloakserve # buildkit
2026-05-06 16:46:01 UTC (buildkit.dockerfile.v0)EXPOSE [9222/tcp]
2026-05-06 16:46:01 UTC (buildkit.dockerfile.v0)COPY bin/docker-entrypoint.sh /entrypoint.sh # buildkit
2026-05-06 16:46:02 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c chmod +x /entrypoint.sh # buildkit
2026-05-06 16:46:02 UTC (buildkit.dockerfile.v0)ENV DISPLAY=:99
2026-05-06 16:46:02 UTC (buildkit.dockerfile.v0)ENTRYPOINT ["/entrypoint.sh"]
2026-05-06 16:46:02 UTC (buildkit.dockerfile.v0)CMD ["python"]
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.