2026-10-10 22:40:30 UTC
373 MB
/config
ETK_API_HOST0.0.0.0
ETK_API_PORT5257
ETK_API_THREAD_POOL_WORKERS8
ETK_DB_POOL_MAX_IDLE_SECONDS300
ETK_DB_POOL_MAX_SIZE12
ETK_STATIC_DIR/app/static
GPG_KEY7169605F62C751356D054A26A821E680E5FA6305
HOME/etkn
LANGC.UTF-8
MALLOC_ARENA_MAX2
PATH/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PGID0
PUID0
PYTHONDONTWRITEBYTECODE1
PYTHONUNBUFFERED1
PYTHON_SHA256c2c4321961fab0fb999d66e0cecf521c2ab3994c7992873ea99e306c1094fd5a
PYTHON_VERSION3.12.15
UMASK022
[#000] sha256:ecc510c1e359bdc007b39802570bb7e4dec7d6ebccf357c3201a74299113e05e - 7.63% (28.5 MB)
[#001] sha256:75b6a36c64a1cf3520fc4b4aae4739d5caa8a6a05c27835a920a61784c9c32f8 - 0.33% (1.23 MB)
[#002] sha256:6912e23eb44595b44dc6d9882b34f305ad6f6e9667cec70b13e5dbc4f8cd97f4 - 3.1% (11.6 MB)
[#003] sha256:bbc5a12237474ec0b23b5051260d56d6436a24d70d9cad961adebe7a037ed813 - 0.0% (249 Bytes)
[#004] sha256:c59322ae6fabaafce8b62d613613e50b4ce7602fa63e223f17660eb846ec85cb - 0.0% (93 Bytes)
[#005] sha256:8fa256363dbaf6a44ed0cde450c977167a50dbe442dbd0a514a83c640eb7ce3c - 63.85% (238 MB)
[#006] sha256:711d137a41560ab202d482ddd7e9815411ab0d16b0cbeaf5bd2500c1682de0e6 - 18.99% (70.9 MB)
[#007] sha256:d691db25f02eea14d493ac3d373d4fae5a22c304b14b89bbe9267e75ae923d65 - 2.36% (8.82 MB)
[#008] sha256:45fa1bc7f5b7241eab0c750f98911a62674ac208e7f70ae6b0333999423cbe6d - 3.19% (11.9 MB)
[#009] sha256:4f5f38a344bb40f4240846c8db5f207680f08c3ad69bedcf94fed9915a198a65 - 0.02% (59.6 KB)
[#010] sha256:12dbb559c604c834ef4b4f11b09e9969b6a48807f0c6ae5cf6872a09e8bb54f7 - 0.0% (799 Bytes)
[#011] sha256:41853dda1ea9bcb28b38c1a4d39add9fc5000de2563cd0acafb689f3773e20c6 - 0.0% (1.45 KB)
[#012] sha256:33bceaaf64b34ee7093883d032991a8ca28f2e9efa40c4960401f9467e8ca59d - 0.53% (1.97 MB)
[#013] sha256:f82352d8cab16d520030e795c0116015a9fa261b481abab9b5c015b3f28ca23b - 0.0% (1.86 KB)
# debian.sh --arch 'amd64' out/ 'trixie' '@1791158400'
2026-10-06 01:55:57 UTC (buildkit.dockerfile.v0)ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2026-10-06 01:55:57 UTC (buildkit.dockerfile.v0)ENV LANG=C.UTF-8
2026-10-06 01:55: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-10-06 01:55:57 UTC (buildkit.dockerfile.v0)ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305
2026-10-06 01:55:57 UTC (buildkit.dockerfile.v0)ENV PYTHON_VERSION=3.12.15
2026-10-06 01:55:57 UTC (buildkit.dockerfile.v0)ENV PYTHON_SHA256=c2c4321961fab0fb999d66e0cecf521c2ab3994c7992873ea99e306c1094fd5a
2026-10-06 02:04:40 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 g++ 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-10-06 02:04:40 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-10-06 02:04:40 UTC (buildkit.dockerfile.v0)CMD ["python3"]
2026-10-10 22:39:24 UTC (buildkit.dockerfile.v0)ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 MALLOC_ARENA_MAX=2 HOME=/etkn PUID=0 PGID=0 UMASK=022 ETK_API_HOST=0.0.0.0 ETK_API_PORT=5257 ETK_API_THREAD_POOL_WORKERS=8 ETK_DB_POOL_MAX_SIZE=12 ETK_DB_POOL_MAX_IDLE_SECONDS=300 ETK_STATIC_DIR=/app/static ETKN_CONFIG_DIR=/config
2026-10-10 22:39:24 UTC (buildkit.dockerfile.v0)WORKDIR /app
2026-10-10 22:40:24 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c apt-get update && apt-get install -y --no-install-recommends nginx ffmpeg gosu fonts-noto-cjk && rm -f /etc/nginx/sites-enabled/default /etc/nginx/sites-available/default /etc/nginx/conf.d/default.conf && apt-get clean && rm -rf /var/lib/apt/lists/* # buildkit
2026-10-10 22:40:27 UTC (buildkit.dockerfile.v0)COPY /install/ /usr/local/ # buildkit
2026-10-10 22:40:27 UTC (buildkit.dockerfile.v0)COPY /wheel/ /tmp/etkn-wheel/ # buildkit
2026-10-10 22:40:30 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c python -m pip install --no-deps --no-index --force-reinstall /tmp/etkn-wheel/*.whl && rm -rf /tmp/etkn-wheel # buildkit
2026-10-10 22:40:30 UTC (buildkit.dockerfile.v0)COPY migrations/ ./migrations/ # buildkit
2026-10-10 22:40:30 UTC (buildkit.dockerfile.v0)COPY docker/ ./docker/ # buildkit
2026-10-10 22:40:30 UTC (buildkit.dockerfile.v0)COPY templates/ ./templates/ # buildkit
2026-10-10 22:40:30 UTC (buildkit.dockerfile.v0)COPY /build/frontend/dist/ ./static/ # buildkit
2026-10-10 22:40:30 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c groupadd --system --gid 918 etkn && useradd --system --uid 918 --gid etkn --home-dir /etkn --shell /usr/sbin/nologin etkn && mkdir -p /config /etkn /run/nginx && chmod +x /app/docker/entrypoint.sh # buildkit
2026-10-10 22:40:30 UTC (buildkit.dockerfile.v0)EXPOSE map[5257/tcp:{} 8097/tcp:{}]
2026-10-10 22:40:30 UTC (buildkit.dockerfile.v0)HEALTHCHECK &{["CMD-SHELL" "python -c \"import urllib.request; urllib.request.urlopen('http://127.0.0.1:5257/api/health', timeout=3)\""] "30s" "5s" "10m0s" "0s" '\x03'}
2026-10-10 22:40:30 UTC (buildkit.dockerfile.v0)ENTRYPOINT ["/app/docker/entrypoint.sh"]
2026-10-10 22:43:16 UTC
368 MB
/config
ETK_API_HOST0.0.0.0
ETK_API_PORT5257
ETK_API_THREAD_POOL_WORKERS8
ETK_DB_POOL_MAX_IDLE_SECONDS300
ETK_DB_POOL_MAX_SIZE12
ETK_STATIC_DIR/app/static
GPG_KEY7169605F62C751356D054A26A821E680E5FA6305
HOME/etkn
LANGC.UTF-8
MALLOC_ARENA_MAX2
PATH/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PGID0
PUID0
PYTHONDONTWRITEBYTECODE1
PYTHONUNBUFFERED1
PYTHON_SHA256c2c4321961fab0fb999d66e0cecf521c2ab3994c7992873ea99e306c1094fd5a
PYTHON_VERSION3.12.15
UMASK022
[#000] sha256:bbeda6b4abb749f743f4547ef5a28070a14de8caef211daa5afb78d5b5fa21ba - 7.84% (28.8 MB)
[#001] sha256:387b25ff7b944c188f58f0e8633fb93428b7418b9af0549618f96ce8fd56da5f - 0.33% (1.22 MB)
[#002] sha256:4dbdca1a513d31094476a7f745c8278b0ca94c30b9bc66ec65b9faebff263a16 - 3.13% (11.5 MB)
[#003] sha256:6e2fcafe72a4c4e812d11805d3f8f7b8fddd43ac39a29aadbe0a93b079d60e18 - 0.0% (249 Bytes)
[#004] sha256:e45a64fd877ff675263c1ce14c8976ca0d4148ab95314d74117935f101f4cade - 0.0% (93 Bytes)
[#005] sha256:9ac8b9492824ccf1f7fe57d38061edcf83ba818603dd781c6f161bab9fe4b2ba - 63.36% (233 MB)
[#006] sha256:25f11c36255b0dc5b873273b5d9b3c51ec28b5ba7c9f74d6f698267cb8f77d1f - 19.15% (70.4 MB)
[#007] sha256:11609a11f64b9f73a75b7dfdbfdef5ffc82e73eb72012f03c4338541f1757e0b - 2.4% (8.82 MB)
[#008] sha256:8fb996fa9a4c3d935d280cc1e1dcb726f8f3dcddafc9f0144f6fb0e49b5c102e - 3.24% (11.9 MB)
[#009] sha256:3ac19c37d0a682d62126d4ca02d082f10a4e73c2ad52e8dfe30acefaee9b4a5f - 0.02% (59.6 KB)
[#010] sha256:56cf8b16ec61ab0974b032c76207676db7fb1d5eef717bb28b92f27c65b4f5ab - 0.0% (797 Bytes)
[#011] sha256:89e13b45e610d1a5a609d1f7bc0dac151849e32318e56b58e2fe5e6384883e5b - 0.0% (1.45 KB)
[#012] sha256:a098e592b5f23de96726377f39fa521601d2ae5d820f131cfb2b5f3056ec0603 - 0.54% (1.97 MB)
[#013] sha256:dcb0fa96b1c3c4daedae83d776892402756645d4a4bc1f5a275b10197172c79e - 0.0% (1.86 KB)
# debian.sh --arch 'arm64' out/ 'trixie' '@1791158400'
2026-10-06 01:59:29 UTC (buildkit.dockerfile.v0)ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2026-10-06 01:59:29 UTC (buildkit.dockerfile.v0)ENV LANG=C.UTF-8
2026-10-06 01:59:29 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-10-06 01:59:29 UTC (buildkit.dockerfile.v0)ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305
2026-10-06 01:59:29 UTC (buildkit.dockerfile.v0)ENV PYTHON_VERSION=3.12.15
2026-10-06 01:59:29 UTC (buildkit.dockerfile.v0)ENV PYTHON_SHA256=c2c4321961fab0fb999d66e0cecf521c2ab3994c7992873ea99e306c1094fd5a
2026-10-06 02:11:04 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 g++ 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-10-06 02:11:04 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-10-06 02:11:04 UTC (buildkit.dockerfile.v0)CMD ["python3"]
2026-10-10 22:39:20 UTC (buildkit.dockerfile.v0)ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 MALLOC_ARENA_MAX=2 HOME=/etkn PUID=0 PGID=0 UMASK=022 ETK_API_HOST=0.0.0.0 ETK_API_PORT=5257 ETK_API_THREAD_POOL_WORKERS=8 ETK_DB_POOL_MAX_SIZE=12 ETK_DB_POOL_MAX_IDLE_SECONDS=300 ETK_STATIC_DIR=/app/static ETKN_CONFIG_DIR=/config
2026-10-10 22:39:20 UTC (buildkit.dockerfile.v0)WORKDIR /app
2026-10-10 22:40:11 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c apt-get update && apt-get install -y --no-install-recommends nginx ffmpeg gosu fonts-noto-cjk && rm -f /etc/nginx/sites-enabled/default /etc/nginx/sites-available/default /etc/nginx/conf.d/default.conf && apt-get clean && rm -rf /var/lib/apt/lists/* # buildkit
2026-10-10 22:40:14 UTC (buildkit.dockerfile.v0)COPY /install/ /usr/local/ # buildkit
2026-10-10 22:40:14 UTC (buildkit.dockerfile.v0)COPY /wheel/ /tmp/etkn-wheel/ # buildkit
2026-10-10 22:40:17 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c python -m pip install --no-deps --no-index --force-reinstall /tmp/etkn-wheel/*.whl && rm -rf /tmp/etkn-wheel # buildkit
2026-10-10 22:40:17 UTC (buildkit.dockerfile.v0)COPY migrations/ ./migrations/ # buildkit
2026-10-10 22:40:17 UTC (buildkit.dockerfile.v0)COPY docker/ ./docker/ # buildkit
2026-10-10 22:40:17 UTC (buildkit.dockerfile.v0)COPY templates/ ./templates/ # buildkit
2026-10-10 22:43:16 UTC (buildkit.dockerfile.v0)COPY /build/frontend/dist/ ./static/ # buildkit
2026-10-10 22:43:16 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c groupadd --system --gid 918 etkn && useradd --system --uid 918 --gid etkn --home-dir /etkn --shell /usr/sbin/nologin etkn && mkdir -p /config /etkn /run/nginx && chmod +x /app/docker/entrypoint.sh # buildkit
2026-10-10 22:43:16 UTC (buildkit.dockerfile.v0)EXPOSE map[5257/tcp:{} 8097/tcp:{}]
2026-10-10 22:43:16 UTC (buildkit.dockerfile.v0)HEALTHCHECK &{["CMD-SHELL" "python -c \"import urllib.request; urllib.request.urlopen('http://127.0.0.1:5257/api/health', timeout=3)\""] "30s" "5s" "10m0s" "0s" '\x03'}
2026-10-10 22:43:16 UTC (buildkit.dockerfile.v0)ENTRYPOINT ["/app/docker/entrypoint.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.