2026-05-08 20:22:47 UTC
63.6 MB
0.3.1
DYNPKG_RELEASE1~trixie
NGINX_VERSION1.29.8
NJS_RELEASE1~trixie
NJS_VERSION0.9.6
OTEL_VERSION0.1.2
PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PKG_RELEASE1~trixie
[#000] sha256:57fb71246055257a374deb7564ceca10f43c2352572b501efc08add5d24ebb61 - 44.68% (28.4 MB)
[#001] sha256:38a7e44929f3a02caf5d606403b9c7f843cf5fd963a30bd77d9a4deea44cc4e0 - 49.75% (31.6 MB)
[#002] sha256:6e9f32fdbd611e27f05fbb3d972c3cbd1d9ce01dcf9743667b551f37a12b9d7a - 0.0% (628 Bytes)
[#003] sha256:382a36159731b6c4f15992b4542ad824d7a1d3dee549d696ec8d4af8f0718466 - 0.0% (956 Bytes)
[#004] sha256:20d41cd6829d6a76246d76ad30405271259064cd1465c2f49b8f0f03a63675f5 - 0.0% (404 Bytes)
[#005] sha256:83742381311ab223ac476c81482f79c2fd5f8cade0fdd7c3ee92574649e9ace7 - 0.0% (1.18 KB)
[#006] sha256:8e9b53b630dedfac569c0b3484f367dd8bdaa437b2dcff5c453b742fcba600cf - 0.0% (1.37 KB)
[#007] sha256:4d09243b0296d85464c8b93a58bd304fd1cd669760a8abd0abdf94a37d06e884 - 5.57% (3.54 MB)
# debian.sh --arch 'amd64' out/ 'trixie' '@1777939200'
2026-05-08 19:22:39 UTC (buildkit.dockerfile.v0)LABEL maintainer=NGINX Docker Maintainers <docker-maint@nginx.com>
2026-05-08 19:22:39 UTC (buildkit.dockerfile.v0)ENV NGINX_VERSION=1.29.8
2026-05-08 19:22:39 UTC (buildkit.dockerfile.v0)ENV NJS_VERSION=0.9.6
2026-05-08 19:22:39 UTC (buildkit.dockerfile.v0)ENV NJS_RELEASE=1~trixie
2026-05-08 19:22:39 UTC (buildkit.dockerfile.v0)ENV ACME_VERSION=0.3.1
2026-05-08 19:22:39 UTC (buildkit.dockerfile.v0)ENV PKG_RELEASE=1~trixie
2026-05-08 19:22:39 UTC (buildkit.dockerfile.v0)ENV DYNPKG_RELEASE=1~trixie
2026-05-08 19:22:39 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c set -x && groupadd --system --gid 101 nginx && useradd --system --gid nginx --no-create-home --home /nonexistent --comment "nginx user" --shell /bin/false --uid 101 nginx && apt-get update && apt-get install --no-install-recommends --no-install-suggests -y gnupg1 ca-certificates && NGINX_GPGKEYS="573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 8540A6F18833A80E9C1653A42FD21310B49F6B46 9E9BE90EACBCDE69FE9B204CBCDCD8A38D88A2B3"; NGINX_GPGKEY_PATH=/etc/apt/keyrings/nginx-archive-keyring.gpg; export GNUPGHOME="$(mktemp -d)"; found=''; for NGINX_GPGKEY in $NGINX_GPGKEYS; do for server in hkp://keyserver.ubuntu.com:80 pgp.mit.edu ; do echo "Fetching GPG key $NGINX_GPGKEY from $server"; gpg1 --batch --keyserver "$server" --keyserver-options timeout=10 --recv-keys "$NGINX_GPGKEY" && found=yes && break; done; test -z "$found" && echo >&2 "error: failed to fetch GPG key $NGINX_GPGKEY" && exit 1; done; gpg1 --batch --export $NGINX_GPGKEYS > "$NGINX_GPGKEY_PATH" ; rm -rf "$GNUPGHOME"; apt-get remove --purge --auto-remove -y gnupg1 && rm -rf /var/lib/apt/lists/* && dpkgArch="$(dpkg --print-architecture)" && nginxPackages=" nginx=${NGINX_VERSION}-${PKG_RELEASE} nginx-module-xslt=${NGINX_VERSION}-${DYNPKG_RELEASE} nginx-module-geoip=${NGINX_VERSION}-${DYNPKG_RELEASE} nginx-module-image-filter=${NGINX_VERSION}-${DYNPKG_RELEASE} nginx-module-njs=${NGINX_VERSION}+${NJS_VERSION}-${NJS_RELEASE} nginx-module-acme=${NGINX_VERSION}+${ACME_VERSION}-${PKG_RELEASE} " && case "$dpkgArch" in amd64|arm64) echo "deb [signed-by=$NGINX_GPGKEY_PATH] https://nginx.org/packages/mainline/debian/ trixie nginx" >> /etc/apt/sources.list.d/nginx.list && apt-get update ;; *) tempDir="$(mktemp -d)" && chmod 777 "$tempDir" && savedAptMark="$(apt-mark showmanual)" && apt-get update && apt-get install --no-install-recommends --no-install-suggests -y cargo curl devscripts equivs git libxml2-utils lsb-release xsltproc && ( cd "$tempDir" && export CARGO_HOME="$tempDir/.cargo" && REVISION="${NGINX_VERSION}-${PKG_RELEASE}" && REVISION=${REVISION%~*} && curl -f -L -O https://github.com/nginx/pkg-oss/archive/${REVISION}.tar.gz && PKGOSSCHECKSUM="7074c3ba1ece708140afd0220b16df77651fbb56cc012e901bc1c4a80531872b7a58ad97a28357646575ce625e94a0540796c045f95d33e40e6d3874ce7b3d79 *${REVISION}.tar.gz" && if [ "$(openssl sha512 -r ${REVISION}.tar.gz)" = "$PKGOSSCHECKSUM" ]; then echo "pkg-oss tarball checksum verification succeeded!"; else echo "pkg-oss tarball checksum verification failed!"; exit 1; fi && tar xzvf ${REVISION}.tar.gz && cd pkg-oss-${REVISION} && cd debian && for target in base module-geoip module-image-filter module-njs module-xslt module-acme; do make rules-$target; mk-build-deps --install --tool="apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends --yes" debuild-$target/nginx-$NGINX_VERSION/debian/control; done && make base module-geoip module-image-filter module-njs module-xslt module-acme ) && apt-mark showmanual | xargs apt-mark auto > /dev/null && { [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; } && ls -lAFh "$tempDir" && ( cd "$tempDir" && dpkg-scanpackages . > Packages ) && grep '^Package: ' "$tempDir/Packages" && echo "deb [ trusted=yes ] file://$tempDir ./" > /etc/apt/sources.list.d/temp.list && apt-get -o Acquire::GzipIndexes=false update ;; esac && apt-get install --no-install-recommends --no-install-suggests -y $nginxPackages gettext-base curl && apt-get remove --purge --auto-remove -y && rm -rf /var/lib/apt/lists/* /etc/apt/sources.list.d/nginx.list && if [ -n "$tempDir" ]; then apt-get purge -y --auto-remove && rm -rf "$tempDir" /etc/apt/sources.list.d/temp.list; fi && ln -sf /dev/stdout /var/log/nginx/access.log && ln -sf /dev/stderr /var/log/nginx/error.log && mkdir /docker-entrypoint.d # buildkit
2026-05-08 19:22:39 UTC (buildkit.dockerfile.v0)COPY docker-entrypoint.sh / # buildkit
2026-05-08 19:22:39 UTC (buildkit.dockerfile.v0)COPY 10-listen-on-ipv6-by-default.sh /docker-entrypoint.d # buildkit
2026-05-08 19:22:39 UTC (buildkit.dockerfile.v0)COPY 15-local-resolvers.envsh /docker-entrypoint.d # buildkit
2026-05-08 19:22:39 UTC (buildkit.dockerfile.v0)COPY 20-envsubst-on-templates.sh /docker-entrypoint.d # buildkit
2026-05-08 19:22:39 UTC (buildkit.dockerfile.v0)COPY 30-tune-worker-processes.sh /docker-entrypoint.d # buildkit
2026-05-08 19:22:39 UTC (buildkit.dockerfile.v0)ENTRYPOINT ["/docker-entrypoint.sh"]
2026-05-08 19:22:39 UTC (buildkit.dockerfile.v0)EXPOSE map[80/tcp:{}]
2026-05-08 19:22:39 UTC (buildkit.dockerfile.v0)STOPSIGNAL SIGQUIT
2026-05-08 19:22:39 UTC (buildkit.dockerfile.v0)CMD ["nginx" "-g" "daemon off;"]
2026-05-08 20:22:47 UTC (buildkit.dockerfile.v0)ENV OTEL_VERSION=0.1.2
2026-05-08 20:22:47 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c set -x; NGINX_GPGKEY_PATH=/etc/apt/keyrings/nginx-archive-keyring.gpg; dpkgArch="$(dpkg --print-architecture)" && nginxPackages=" nginx=${NGINX_VERSION}-${PKG_RELEASE} nginx-module-xslt=${NGINX_VERSION}-${DYNPKG_RELEASE} nginx-module-geoip=${NGINX_VERSION}-${DYNPKG_RELEASE} nginx-module-image-filter=${NGINX_VERSION}-${DYNPKG_RELEASE} nginx-module-njs=${NGINX_VERSION}+${NJS_VERSION}-${NJS_RELEASE} nginx-module-acme=${NGINX_VERSION}+${ACME_VERSION}-${PKG_RELEASE} nginx-module-otel=${NGINX_VERSION}+${OTEL_VERSION}-${PKG_RELEASE} " && case "$dpkgArch" in amd64|arm64) echo "deb [signed-by=$NGINX_GPGKEY_PATH] https://nginx.org/packages/mainline/debian/ trixie nginx" >> /etc/apt/sources.list.d/nginx.list && apt-get update ;; *) tempDir="$(mktemp -d)" && chmod 777 "$tempDir" && savedAptMark="$(apt-mark showmanual)" && apt-get update && apt-get install --no-install-recommends --no-install-suggests -y curl devscripts equivs git libxml2-utils lsb-release xsltproc && ( cd "$tempDir" && REVISION="${NGINX_VERSION}-${PKG_RELEASE}" && REVISION=${REVISION%~*} && curl -f -L -O https://github.com/nginx/pkg-oss/archive/${REVISION}.tar.gz && PKGOSSCHECKSUM="7074c3ba1ece708140afd0220b16df77651fbb56cc012e901bc1c4a80531872b7a58ad97a28357646575ce625e94a0540796c045f95d33e40e6d3874ce7b3d79 *${REVISION}.tar.gz" && if [ "$(openssl sha512 -r ${REVISION}.tar.gz)" = "$PKGOSSCHECKSUM" ]; then echo "pkg-oss tarball checksum verification succeeded!"; else echo "pkg-oss tarball checksum verification failed!"; exit 1; fi && tar xzvf ${REVISION}.tar.gz && cd pkg-oss-${REVISION} && cd debian && for target in module-otel; do make rules-$target; mk-build-deps --install --tool="apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends --yes" debuild-$target/nginx-$NGINX_VERSION/debian/control; done && make module-otel ) && apt-mark showmanual | xargs apt-mark auto > /dev/null && { [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; } && ls -lAFh "$tempDir" && ( cd "$tempDir" && dpkg-scanpackages . > Packages ) && grep '^Package: ' "$tempDir/Packages" && echo "deb [ trusted=yes ] file://$tempDir ./" > /etc/apt/sources.list.d/temp.list && apt-get -o Acquire::GzipIndexes=false update ;; esac && apt-get install --no-install-recommends --no-install-suggests -y $nginxPackages gettext-base curl && apt-get remove --purge --auto-remove -y && rm -rf /var/lib/apt/lists/* /etc/apt/sources.list.d/nginx.list && if [ -n "$tempDir" ]; then apt-get purge -y --auto-remove && rm -rf "$tempDir" /etc/apt/sources.list.d/temp.list; fi # buildkit
2026-05-08 20:27:22 UTC
61.8 MB
0.3.1
DYNPKG_RELEASE1~trixie
NGINX_VERSION1.29.8
NJS_RELEASE1~trixie
NJS_VERSION0.9.6
OTEL_VERSION0.1.2
PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PKG_RELEASE1~trixie
[#000] sha256:9ebf9a1d0c9ca1bcb377e9dba38a3fdd3e89cf37164f4245286c24f8cd50a39e - 46.55% (28.7 MB)
[#001] sha256:0cbb36225b641a6965b680bcd401a43615e52a42e93908d0faf2388cb088d143 - 48.09% (29.7 MB)
[#002] sha256:7233902120245103cf1634f36441eb74882a602b9c7934f85696d7896c8802aa - 0.0% (627 Bytes)
[#003] sha256:7e26c83bf44f3bf345dc97aed90b8a0cd2111861f2c76c35c29985c26a0b6483 - 0.0% (956 Bytes)
[#004] sha256:46d472f762a89436d52a3327293fdc6b426321be07ffee13227faac78b82b466 - 0.0% (402 Bytes)
[#005] sha256:b08d37673839087af78b752a824ef4f692acd5190a9eb34b91b8f6e4875d9c4f - 0.0% (1.18 KB)
[#006] sha256:8d207385a9f9125e7d6d972d71854facba065523c9fe2b8d350264acb05e5a03 - 0.0% (1.37 KB)
[#007] sha256:19647b9114c73561681487bf35978333c04f4782e29b9d4809505ec3b83746ea - 5.36% (3.31 MB)
# debian.sh --arch 'arm64' out/ 'trixie' '@1777939200'
2026-05-08 19:21:36 UTC (buildkit.dockerfile.v0)LABEL maintainer=NGINX Docker Maintainers <docker-maint@nginx.com>
2026-05-08 19:21:36 UTC (buildkit.dockerfile.v0)ENV NGINX_VERSION=1.29.8
2026-05-08 19:21:36 UTC (buildkit.dockerfile.v0)ENV NJS_VERSION=0.9.6
2026-05-08 19:21:36 UTC (buildkit.dockerfile.v0)ENV NJS_RELEASE=1~trixie
2026-05-08 19:21:36 UTC (buildkit.dockerfile.v0)ENV ACME_VERSION=0.3.1
2026-05-08 19:21:36 UTC (buildkit.dockerfile.v0)ENV PKG_RELEASE=1~trixie
2026-05-08 19:21:36 UTC (buildkit.dockerfile.v0)ENV DYNPKG_RELEASE=1~trixie
2026-05-08 19:21:36 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c set -x && groupadd --system --gid 101 nginx && useradd --system --gid nginx --no-create-home --home /nonexistent --comment "nginx user" --shell /bin/false --uid 101 nginx && apt-get update && apt-get install --no-install-recommends --no-install-suggests -y gnupg1 ca-certificates && NGINX_GPGKEYS="573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 8540A6F18833A80E9C1653A42FD21310B49F6B46 9E9BE90EACBCDE69FE9B204CBCDCD8A38D88A2B3"; NGINX_GPGKEY_PATH=/etc/apt/keyrings/nginx-archive-keyring.gpg; export GNUPGHOME="$(mktemp -d)"; found=''; for NGINX_GPGKEY in $NGINX_GPGKEYS; do for server in hkp://keyserver.ubuntu.com:80 pgp.mit.edu ; do echo "Fetching GPG key $NGINX_GPGKEY from $server"; gpg1 --batch --keyserver "$server" --keyserver-options timeout=10 --recv-keys "$NGINX_GPGKEY" && found=yes && break; done; test -z "$found" && echo >&2 "error: failed to fetch GPG key $NGINX_GPGKEY" && exit 1; done; gpg1 --batch --export $NGINX_GPGKEYS > "$NGINX_GPGKEY_PATH" ; rm -rf "$GNUPGHOME"; apt-get remove --purge --auto-remove -y gnupg1 && rm -rf /var/lib/apt/lists/* && dpkgArch="$(dpkg --print-architecture)" && nginxPackages=" nginx=${NGINX_VERSION}-${PKG_RELEASE} nginx-module-xslt=${NGINX_VERSION}-${DYNPKG_RELEASE} nginx-module-geoip=${NGINX_VERSION}-${DYNPKG_RELEASE} nginx-module-image-filter=${NGINX_VERSION}-${DYNPKG_RELEASE} nginx-module-njs=${NGINX_VERSION}+${NJS_VERSION}-${NJS_RELEASE} nginx-module-acme=${NGINX_VERSION}+${ACME_VERSION}-${PKG_RELEASE} " && case "$dpkgArch" in amd64|arm64) echo "deb [signed-by=$NGINX_GPGKEY_PATH] https://nginx.org/packages/mainline/debian/ trixie nginx" >> /etc/apt/sources.list.d/nginx.list && apt-get update ;; *) tempDir="$(mktemp -d)" && chmod 777 "$tempDir" && savedAptMark="$(apt-mark showmanual)" && apt-get update && apt-get install --no-install-recommends --no-install-suggests -y cargo curl devscripts equivs git libxml2-utils lsb-release xsltproc && ( cd "$tempDir" && export CARGO_HOME="$tempDir/.cargo" && REVISION="${NGINX_VERSION}-${PKG_RELEASE}" && REVISION=${REVISION%~*} && curl -f -L -O https://github.com/nginx/pkg-oss/archive/${REVISION}.tar.gz && PKGOSSCHECKSUM="7074c3ba1ece708140afd0220b16df77651fbb56cc012e901bc1c4a80531872b7a58ad97a28357646575ce625e94a0540796c045f95d33e40e6d3874ce7b3d79 *${REVISION}.tar.gz" && if [ "$(openssl sha512 -r ${REVISION}.tar.gz)" = "$PKGOSSCHECKSUM" ]; then echo "pkg-oss tarball checksum verification succeeded!"; else echo "pkg-oss tarball checksum verification failed!"; exit 1; fi && tar xzvf ${REVISION}.tar.gz && cd pkg-oss-${REVISION} && cd debian && for target in base module-geoip module-image-filter module-njs module-xslt module-acme; do make rules-$target; mk-build-deps --install --tool="apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends --yes" debuild-$target/nginx-$NGINX_VERSION/debian/control; done && make base module-geoip module-image-filter module-njs module-xslt module-acme ) && apt-mark showmanual | xargs apt-mark auto > /dev/null && { [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; } && ls -lAFh "$tempDir" && ( cd "$tempDir" && dpkg-scanpackages . > Packages ) && grep '^Package: ' "$tempDir/Packages" && echo "deb [ trusted=yes ] file://$tempDir ./" > /etc/apt/sources.list.d/temp.list && apt-get -o Acquire::GzipIndexes=false update ;; esac && apt-get install --no-install-recommends --no-install-suggests -y $nginxPackages gettext-base curl && apt-get remove --purge --auto-remove -y && rm -rf /var/lib/apt/lists/* /etc/apt/sources.list.d/nginx.list && if [ -n "$tempDir" ]; then apt-get purge -y --auto-remove && rm -rf "$tempDir" /etc/apt/sources.list.d/temp.list; fi && ln -sf /dev/stdout /var/log/nginx/access.log && ln -sf /dev/stderr /var/log/nginx/error.log && mkdir /docker-entrypoint.d # buildkit
2026-05-08 19:21:36 UTC (buildkit.dockerfile.v0)COPY docker-entrypoint.sh / # buildkit
2026-05-08 19:21:36 UTC (buildkit.dockerfile.v0)COPY 10-listen-on-ipv6-by-default.sh /docker-entrypoint.d # buildkit
2026-05-08 19:21:36 UTC (buildkit.dockerfile.v0)COPY 15-local-resolvers.envsh /docker-entrypoint.d # buildkit
2026-05-08 19:21:36 UTC (buildkit.dockerfile.v0)COPY 20-envsubst-on-templates.sh /docker-entrypoint.d # buildkit
2026-05-08 19:21:36 UTC (buildkit.dockerfile.v0)COPY 30-tune-worker-processes.sh /docker-entrypoint.d # buildkit
2026-05-08 19:21:36 UTC (buildkit.dockerfile.v0)ENTRYPOINT ["/docker-entrypoint.sh"]
2026-05-08 19:21:36 UTC (buildkit.dockerfile.v0)EXPOSE map[80/tcp:{}]
2026-05-08 19:21:36 UTC (buildkit.dockerfile.v0)STOPSIGNAL SIGQUIT
2026-05-08 19:21:36 UTC (buildkit.dockerfile.v0)CMD ["nginx" "-g" "daemon off;"]
2026-05-08 20:27:22 UTC (buildkit.dockerfile.v0)ENV OTEL_VERSION=0.1.2
2026-05-08 20:27:22 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c set -x; NGINX_GPGKEY_PATH=/etc/apt/keyrings/nginx-archive-keyring.gpg; dpkgArch="$(dpkg --print-architecture)" && nginxPackages=" nginx=${NGINX_VERSION}-${PKG_RELEASE} nginx-module-xslt=${NGINX_VERSION}-${DYNPKG_RELEASE} nginx-module-geoip=${NGINX_VERSION}-${DYNPKG_RELEASE} nginx-module-image-filter=${NGINX_VERSION}-${DYNPKG_RELEASE} nginx-module-njs=${NGINX_VERSION}+${NJS_VERSION}-${NJS_RELEASE} nginx-module-acme=${NGINX_VERSION}+${ACME_VERSION}-${PKG_RELEASE} nginx-module-otel=${NGINX_VERSION}+${OTEL_VERSION}-${PKG_RELEASE} " && case "$dpkgArch" in amd64|arm64) echo "deb [signed-by=$NGINX_GPGKEY_PATH] https://nginx.org/packages/mainline/debian/ trixie nginx" >> /etc/apt/sources.list.d/nginx.list && apt-get update ;; *) tempDir="$(mktemp -d)" && chmod 777 "$tempDir" && savedAptMark="$(apt-mark showmanual)" && apt-get update && apt-get install --no-install-recommends --no-install-suggests -y curl devscripts equivs git libxml2-utils lsb-release xsltproc && ( cd "$tempDir" && REVISION="${NGINX_VERSION}-${PKG_RELEASE}" && REVISION=${REVISION%~*} && curl -f -L -O https://github.com/nginx/pkg-oss/archive/${REVISION}.tar.gz && PKGOSSCHECKSUM="7074c3ba1ece708140afd0220b16df77651fbb56cc012e901bc1c4a80531872b7a58ad97a28357646575ce625e94a0540796c045f95d33e40e6d3874ce7b3d79 *${REVISION}.tar.gz" && if [ "$(openssl sha512 -r ${REVISION}.tar.gz)" = "$PKGOSSCHECKSUM" ]; then echo "pkg-oss tarball checksum verification succeeded!"; else echo "pkg-oss tarball checksum verification failed!"; exit 1; fi && tar xzvf ${REVISION}.tar.gz && cd pkg-oss-${REVISION} && cd debian && for target in module-otel; do make rules-$target; mk-build-deps --install --tool="apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends --yes" debuild-$target/nginx-$NGINX_VERSION/debian/control; done && make module-otel ) && apt-mark showmanual | xargs apt-mark auto > /dev/null && { [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; } && ls -lAFh "$tempDir" && ( cd "$tempDir" && dpkg-scanpackages . > Packages ) && grep '^Package: ' "$tempDir/Packages" && echo "deb [ trusted=yes ] file://$tempDir ./" > /etc/apt/sources.list.d/temp.list && apt-get -o Acquire::GzipIndexes=false update ;; esac && apt-get install --no-install-recommends --no-install-suggests -y $nginxPackages gettext-base curl && apt-get remove --purge --auto-remove -y && rm -rf /var/lib/apt/lists/* /etc/apt/sources.list.d/nginx.list && if [ -n "$tempDir" ]; then apt-get purge -y --auto-remove && rm -rf "$tempDir" /etc/apt/sources.list.d/temp.list; fi # buildkit