2026-10-23 09:10:06 UTC
61.5 MB
production
NODE_VERSION24.22.1
PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
YARN_VERSION1.22.22
[#000] sha256:7b229517ed222597277036d94892173207d01a731ab3a88eeb1de2e963a2c788 - 5.98% (3.67 MB)
[#001] sha256:15577f11e05afbda845cbd2903e55f0a3da41dc2a576435999474e7a2654651b - 88.98% (54.7 MB)
[#002] sha256:f0a5c9e3ce7dcc7fca3a816f70b3d42bc5324066b627223af466eff9030e171f - 1.96% (1.2 MB)
[#003] sha256:109c2f814f468711ac666fb9494ce76528e972ee8636468ad822267a0af959e5 - 0.0% (443 Bytes)
[#004] sha256:2188afd8bc1b3687bf21048f463503b4193ce661bd69e3f1a64f9b8a9a253ca7 - 0.0% (110 Bytes)
[#005] sha256:d2bf4ea5d5cc9f930a5cbe79cc4a70d588780de4b8321f6d8b1bf0afc813fabb - 0.02% (15.6 KB)
[#006] sha256:8ca800ce5da92537748d1001e9d3d90081b24fc2343472ca07575a299b8f2c49 - 3.06% (1.88 MB)
[#007] sha256:c1338db17e461cdfbbcc3a13168f64306bb70b7e99adcecbde56b474db4d3278 - 0.0% (2.45 KB)
[#008] sha256:7ecea5de2ffbe13fbea33c238f2e0ec6d2d23f2a7ac5b3b1502bccb4c5dd5485 - 0.0% (753 Bytes)
ADD alpine-minirootfs-3.24.3-x86_64.tar.gz / # buildkit
2026-10-21 22:37:22 UTC (buildkit.dockerfile.v0)CMD ["/bin/sh"]
2026-10-21 22:58:44 UTC (buildkit.dockerfile.v0)ENV NODE_VERSION=24.22.1
2026-10-21 22:58:44 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c addgroup -g 1000 node && adduser -u 1000 -G node -s /bin/sh -D node && apk add --no-cache libatomic libstdc++ && apk add --no-cache --virtual .build-deps gnupg curl && ARCH= OPENSSL_ARCH='linux*' && alpineArch="$(apk --print-arch)" && case "${alpineArch##*-}" in x86_64) ARCH='x64' OPENSSL_ARCH=linux-x86_64;; aarch64) OPENSSL_ARCH=linux-aarch64;; s390x) OPENSSL_ARCH=linux-s390x;; *) echo "unsupported architecture"; exit 1 ;; esac && export GNUPGHOME="$(mktemp -d)" && set -ex && for key in 5BE8A3F6C8A5C01D106C0AD820B1A390B168D356 DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7 CC68F5A3106FF448322E48ED27F5E38D5B0A215F 890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4 C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C 108F52B48DB57BB0CC439B2997B01419BD92F80A 655F3B5C1FB3FA8D1A0CA6BDE4A7D232B936D2FD A363A499291CBBC940DD62E41F10027AF002F8B0 ; do { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key"; } || { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ; done && if [ "$ARCH" = "x64" ]; then curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc && gpgconf --kill all && rm -rf "$GNUPGHOME" && grep " node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz\$" SHASUMS256.txt | sha256sum -c - && tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner && rm "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt && ln -s /usr/local/bin/node /usr/local/bin/nodejs; else echo "Building from source" && apk add --no-cache --virtual .build-deps-full binutils-gold g++ gcc libgcc linux-headers make python3 py-setuptools && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz" && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc && gpgconf --kill all && rm -rf "$GNUPGHOME" && grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c - && tar -xf "node-v$NODE_VERSION.tar.xz" && cd "node-v$NODE_VERSION" && ./configure && make -j$(getconf _NPROCESSORS_ONLN) V= && make install && apk del .build-deps-full && cd .. && rm -Rf "node-v$NODE_VERSION" && rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt; fi && find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name "$OPENSSL_ARCH" -exec rm -rf {} \; && apk del .build-deps && node --version && npm --version && rm -rf /tmp/* # buildkit
2026-10-21 22:58:44 UTC (buildkit.dockerfile.v0)ENV YARN_VERSION=1.22.22
2026-10-21 22:58:47 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c apk add --no-cache --virtual .build-deps-yarn curl gnupg tar && export GNUPGHOME="$(mktemp -d)" && for key in 6A010C5166006599AA17F08146C2130DFD2497F5 ; do { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key"; } || { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ; done && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" && gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz && gpgconf --kill all && rm -rf "$GNUPGHOME" && mkdir -p /opt && tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ && ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn && ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg && rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz && apk del .build-deps-yarn && yarn --version && rm -rf /tmp/* # buildkit
2026-10-21 22:58:47 UTC (buildkit.dockerfile.v0)COPY docker-entrypoint.sh /usr/local/bin/ # buildkit
2026-10-21 22:58:47 UTC (buildkit.dockerfile.v0)ENTRYPOINT ["docker-entrypoint.sh"]
2026-10-21 22:58:47 UTC (buildkit.dockerfile.v0)CMD ["node"]
2026-10-23 09:09:50 UTC (buildkit.dockerfile.v0)ENV NODE_ENV=production
2026-10-23 09:09:50 UTC (buildkit.dockerfile.v0)WORKDIR /data/api
2026-10-23 09:09:52 UTC (buildkit.dockerfile.v0)COPY package.json package-lock.json ./ # buildkit
2026-10-23 09:10:04 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c npm ci --omit=dev && npm cache clean --force # buildkit
2026-10-23 09:10:05 UTC (buildkit.dockerfile.v0)COPY app.js ./ # buildkit
2026-10-23 09:10:06 UTC (buildkit.dockerfile.v0)COPY utils ./utils # buildkit
2026-10-23 09:10:06 UTC (buildkit.dockerfile.v0)EXPOSE [8088/tcp]
2026-10-23 09:10:06 UTC (buildkit.dockerfile.v0)HEALTHCHECK {Test:[CMD-SHELL node -e "fetch('http://127.0.0.1:'+(process.env.PORT||8088)+(process.env.API_ROOT||'').replace(/\/+$/,'')+'/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"] Interval:30s Timeout:5s StartPeriod:10s StartInterval:0s Retries:3}
2026-10-23 09:10:06 UTC (buildkit.dockerfile.v0)CMD ["node" "app.js"]
2026-10-23 09:10:35 UTC
55.7 MB
production
NODE_VERSION22.23.4
PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
YARN_VERSION1.22.22
[#000] sha256:1e8d134240abdd47977b92433f069c273d151b9fba9396fd8ba3107b7222f7a1 - 5.59% (3.12 MB)
[#001] sha256:c7598786ca1ef5c2a7a204d90c4b72c7fc5b210784a7c1d93d5a3402b66bdea7 - 88.88% (49.5 MB)
[#002] sha256:02bff7f5aee343bd2b3ba2e4866d0fda13a2c9ab1b6f5624449659e6f552dfcf - 2.16% (1.2 MB)
[#003] sha256:614c81077d78fa1d3c9fb6c435af0dd4c3f3df899f801154447b755e8ec12b94 - 0.0% (445 Bytes)
[#004] sha256:7cf80a4f0a8fa7a46a670b47417720ad697c0647543b484afc7b9fe70220345c - 0.0% (110 Bytes)
[#005] sha256:2b3cd2c5b618e9b16c30445709ba00c520e025c3837510a3477dea8a1cf99ef0 - 0.03% (15.6 KB)
[#006] sha256:6844843185a42c33879689ccd6af3ee1796b3822aa9b15483caa7241051a5124 - 3.34% (1.86 MB)
[#007] sha256:23b91bf7e40635a62fdaf28e0af2e6b03e40126257d0d4cacb04897befbcb948 - 0.0% (2.46 KB)
[#008] sha256:5c5c8da6f5b6eeba05bde8ae3e34c18413d3a7d909040aedb0aefdd42a55a8b6 - 0.0% (752 Bytes)
ADD alpine-minirootfs-3.24.3-armv7.tar.gz / # buildkit
2026-10-21 22:52:08 UTC (buildkit.dockerfile.v0)CMD ["/bin/sh"]
2026-10-22 00:10:08 UTC (buildkit.dockerfile.v0)ENV NODE_VERSION=22.23.4
2026-10-22 00:10:08 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c addgroup -g 1000 node && adduser -u 1000 -G node -s /bin/sh -D node && apk add --no-cache libatomic libstdc++ && apk add --no-cache --virtual .build-deps gnupg curl && ARCH= OPENSSL_ARCH='linux*' && alpineArch="$(apk --print-arch)" && case "${alpineArch##*-}" in x86_64) ARCH='x64' OPENSSL_ARCH=linux-x86_64;; aarch64) OPENSSL_ARCH=linux-aarch64;; arm*) OPENSSL_ARCH=linux-armv4;; s390x) OPENSSL_ARCH=linux-s390x;; *) echo "unsupported architecture"; exit 1 ;; esac && export GNUPGHOME="$(mktemp -d)" && set -ex && for key in 5BE8A3F6C8A5C01D106C0AD820B1A390B168D356 DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7 CC68F5A3106FF448322E48ED27F5E38D5B0A215F 890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4 C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C 108F52B48DB57BB0CC439B2997B01419BD92F80A 655F3B5C1FB3FA8D1A0CA6BDE4A7D232B936D2FD A363A499291CBBC940DD62E41F10027AF002F8B0 ; do { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key"; } || { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ; done && if [ "$ARCH" = "x64" ]; then curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc && gpgconf --kill all && rm -rf "$GNUPGHOME" && grep " node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz\$" SHASUMS256.txt | sha256sum -c - && tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner && rm "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt && ln -s /usr/local/bin/node /usr/local/bin/nodejs; else echo "Building from source" && apk add --no-cache --virtual .build-deps-full binutils-gold g++ gcc libgcc linux-headers make python3 py-setuptools && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz" && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc && gpgconf --kill all && rm -rf "$GNUPGHOME" && grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c - && tar -xf "node-v$NODE_VERSION.tar.xz" && cd "node-v$NODE_VERSION" && ./configure && make -j$(getconf _NPROCESSORS_ONLN) V= && make install && apk del .build-deps-full && cd .. && rm -Rf "node-v$NODE_VERSION" && rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt; fi && find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name "$OPENSSL_ARCH" -exec rm -rf {} \; && apk del .build-deps && node --version && npm --version && rm -rf /tmp/* # buildkit
2026-10-22 00:10:08 UTC (buildkit.dockerfile.v0)ENV YARN_VERSION=1.22.22
2026-10-22 00:10:13 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c apk add --no-cache --virtual .build-deps-yarn curl gnupg tar && export GNUPGHOME="$(mktemp -d)" && for key in 6A010C5166006599AA17F08146C2130DFD2497F5 ; do { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key"; } || { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ; done && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" && gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz && gpgconf --kill all && rm -rf "$GNUPGHOME" && mkdir -p /opt && tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ && ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn && ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg && rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz && apk del .build-deps-yarn && yarn --version && rm -rf /tmp/* # buildkit
2026-10-22 00:10:13 UTC (buildkit.dockerfile.v0)COPY docker-entrypoint.sh /usr/local/bin/ # buildkit
2026-10-22 00:10:13 UTC (buildkit.dockerfile.v0)ENTRYPOINT ["docker-entrypoint.sh"]
2026-10-22 00:10:13 UTC (buildkit.dockerfile.v0)CMD ["node"]
2026-10-23 09:10:02 UTC (buildkit.dockerfile.v0)ENV NODE_ENV=production
2026-10-23 09:10:02 UTC (buildkit.dockerfile.v0)WORKDIR /data/api
2026-10-23 09:10:03 UTC (buildkit.dockerfile.v0)COPY package.json package-lock.json ./ # buildkit
2026-10-23 09:10:34 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c npm ci --omit=dev && npm cache clean --force # buildkit
2026-10-23 09:10:34 UTC (buildkit.dockerfile.v0)COPY app.js ./ # buildkit
2026-10-23 09:10:35 UTC (buildkit.dockerfile.v0)COPY utils ./utils # buildkit
2026-10-23 09:10:35 UTC (buildkit.dockerfile.v0)EXPOSE [8088/tcp]
2026-10-23 09:10:35 UTC (buildkit.dockerfile.v0)HEALTHCHECK {Test:[CMD-SHELL node -e "fetch('http://127.0.0.1:'+(process.env.PORT||8088)+(process.env.API_ROOT||'').replace(/\/+$/,'')+'/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"] Interval:30s Timeout:5s StartPeriod:10s StartInterval:0s Retries:3}
2026-10-23 09:10:35 UTC (buildkit.dockerfile.v0)CMD ["node" "app.js"]
2026-10-23 09:10:04 UTC
61.3 MB
production
NODE_VERSION24.22.1
PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
YARN_VERSION1.22.22
[#000] sha256:d3531b7a4f217bdc3426c57bcff84c170f086f456a39689d4a615c6d026c4be0 - 6.52% (4 MB)
[#001] sha256:ddcee9e51d95aa14275aa5eb7476143104fb2ff2a88767f2e4b4adeaac9b251b - 88.42% (54.2 MB)
[#002] sha256:5cef607e5e751dc80266eb75d9b391b55c7c63dca5c35acf78b96b03c69b6452 - 1.97% (1.2 MB)
[#003] sha256:3e52994cb01f70571f4511a3eddd348464ab581edba079f690e4d7324584ed7e - 0.0% (445 Bytes)
[#004] sha256:a74ae693e4ae4a7432e9266e3c0ad2a59af63930e21c061ad9c0b78196b22d02 - 0.0% (110 Bytes)
[#005] sha256:4ca7f8bbfd9251229ef934e360defcfea6e3a22d8cb623d8f76f6202d633f7d0 - 0.02% (15.6 KB)
[#006] sha256:4a27260a1084c148edced86d89bf87a8f41d064061dc6646baa3e04f73557010 - 3.07% (1.88 MB)
[#007] sha256:d2c553b42532da2172e51f2ded453b2981bd349dff9cf885d9fcae291400571f - 0.0% (2.46 KB)
[#008] sha256:ea5539a43e992fe035d354c1c7fc5a9427954599d8a980e43b70635373711983 - 0.0% (751 Bytes)
ADD alpine-minirootfs-3.24.3-aarch64.tar.gz / # buildkit
2026-10-21 22:51:39 UTC (buildkit.dockerfile.v0)CMD ["/bin/sh"]
2026-10-21 23:59:41 UTC (buildkit.dockerfile.v0)ENV NODE_VERSION=24.22.1
2026-10-21 23:59:41 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c addgroup -g 1000 node && adduser -u 1000 -G node -s /bin/sh -D node && apk add --no-cache libatomic libstdc++ && apk add --no-cache --virtual .build-deps gnupg curl && ARCH= OPENSSL_ARCH='linux*' && alpineArch="$(apk --print-arch)" && case "${alpineArch##*-}" in x86_64) ARCH='x64' OPENSSL_ARCH=linux-x86_64;; aarch64) OPENSSL_ARCH=linux-aarch64;; s390x) OPENSSL_ARCH=linux-s390x;; *) echo "unsupported architecture"; exit 1 ;; esac && export GNUPGHOME="$(mktemp -d)" && set -ex && for key in 5BE8A3F6C8A5C01D106C0AD820B1A390B168D356 DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7 CC68F5A3106FF448322E48ED27F5E38D5B0A215F 890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4 C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C 108F52B48DB57BB0CC439B2997B01419BD92F80A 655F3B5C1FB3FA8D1A0CA6BDE4A7D232B936D2FD A363A499291CBBC940DD62E41F10027AF002F8B0 ; do { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key"; } || { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ; done && if [ "$ARCH" = "x64" ]; then curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc && gpgconf --kill all && rm -rf "$GNUPGHOME" && grep " node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz\$" SHASUMS256.txt | sha256sum -c - && tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner && rm "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt && ln -s /usr/local/bin/node /usr/local/bin/nodejs; else echo "Building from source" && apk add --no-cache --virtual .build-deps-full binutils-gold g++ gcc libgcc linux-headers make python3 py-setuptools && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz" && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc && gpgconf --kill all && rm -rf "$GNUPGHOME" && grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c - && tar -xf "node-v$NODE_VERSION.tar.xz" && cd "node-v$NODE_VERSION" && ./configure && make -j$(getconf _NPROCESSORS_ONLN) V= && make install && apk del .build-deps-full && cd .. && rm -Rf "node-v$NODE_VERSION" && rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt; fi && find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name "$OPENSSL_ARCH" -exec rm -rf {} \; && apk del .build-deps && node --version && npm --version && rm -rf /tmp/* # buildkit
2026-10-21 23:59:41 UTC (buildkit.dockerfile.v0)ENV YARN_VERSION=1.22.22
2026-10-21 23:59:45 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c apk add --no-cache --virtual .build-deps-yarn curl gnupg tar && export GNUPGHOME="$(mktemp -d)" && for key in 6A010C5166006599AA17F08146C2130DFD2497F5 ; do { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key"; } || { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ; done && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" && gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz && gpgconf --kill all && rm -rf "$GNUPGHOME" && mkdir -p /opt && tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ && ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn && ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg && rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz && apk del .build-deps-yarn && yarn --version && rm -rf /tmp/* # buildkit
2026-10-21 23:59:45 UTC (buildkit.dockerfile.v0)COPY docker-entrypoint.sh /usr/local/bin/ # buildkit
2026-10-21 23:59:45 UTC (buildkit.dockerfile.v0)ENTRYPOINT ["docker-entrypoint.sh"]
2026-10-21 23:59:45 UTC (buildkit.dockerfile.v0)CMD ["node"]
2026-10-23 09:09:51 UTC (buildkit.dockerfile.v0)ENV NODE_ENV=production
2026-10-23 09:09:51 UTC (buildkit.dockerfile.v0)WORKDIR /data/api
2026-10-23 09:09:52 UTC (buildkit.dockerfile.v0)COPY package.json package-lock.json ./ # buildkit
2026-10-23 09:10:02 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c npm ci --omit=dev && npm cache clean --force # buildkit
2026-10-23 09:10:03 UTC (buildkit.dockerfile.v0)COPY app.js ./ # buildkit
2026-10-23 09:10:04 UTC (buildkit.dockerfile.v0)COPY utils ./utils # buildkit
2026-10-23 09:10:04 UTC (buildkit.dockerfile.v0)EXPOSE [8088/tcp]
2026-10-23 09:10:04 UTC (buildkit.dockerfile.v0)HEALTHCHECK {Test:[CMD-SHELL node -e "fetch('http://127.0.0.1:'+(process.env.PORT||8088)+(process.env.API_ROOT||'').replace(/\/+$/,'')+'/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"] Interval:30s Timeout:5s StartPeriod:10s StartInterval:0s Retries:3}
2026-10-23 09:10:04 UTC (buildkit.dockerfile.v0)CMD ["node" "app.js"]
2026-10-23 09:10:21 UTC
85.7 MB
production
NODE_VERSION24.22.1
PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
YARN_VERSION1.22.22
[#000] sha256:dbe4b1ae261d30189a9f71db084062762a30a0c977f281a1fb8f9b8506a24e42 - 35.73% (30.6 MB)
[#001] sha256:1df4fffecebead492edba98a76e68d3a7120f74105da657bf799abd8d894e621 - 0.0% (3.23 KB)
[#002] sha256:327bb95aa34ea8e235caf10b768e3ad9c77eb364e87b9c7313a7baaa45be906d - 60.14% (51.5 MB)
[#003] sha256:2b195fb4eb094d9611ee49b0ccbb33b11ac8e77e470244e657966ef8046d54b3 - 1.91% (1.63 MB)
[#004] sha256:c98cd1b30e2c67ca0be4b4f3020927ecd888c38f730809438887806966416be1 - 0.0% (449 Bytes)
[#005] sha256:9b358ac31bc3d22eafab2f8d8b056d776426ad66b9675561994af67aec383cc2 - 0.0% (111 Bytes)
[#006] sha256:91fdffef8c0f919938e16f56d548fb4350d0cca58367a417e2fbb4b4fcd9e5c9 - 0.02% (15.6 KB)
[#007] sha256:d925453be9d3c05d337958f679808c085d1f0e8c73260472a349b4e969ac547f - 2.19% (1.88 MB)
[#008] sha256:26cc315605c411e0beb19e990d11bedb6866d044c529559a90fcedd3525701de - 0.0% (2.45 KB)
[#009] sha256:2d278cfee14a3c252b755a080197500875194a3562d952af2f89a96009f82edd - 0.0% (750 Bytes)
# debian.sh --arch 'ppc64el' out/ 'bookworm' '@1792531975'
2026-10-21 04:28:09 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c groupadd --gid 1000 node && useradd --uid 1000 --gid node --shell /bin/bash --create-home node # buildkit
2026-10-21 15:47:49 UTC (buildkit.dockerfile.v0)ENV NODE_VERSION=24.22.1
2026-10-21 15:47:49 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c ARCH= OPENSSL_ARCH= && dpkgArch="$(dpkg --print-architecture)" && case "${dpkgArch##*-}" in amd64) ARCH='x64' OPENSSL_ARCH='linux-x86_64';; ppc64el) ARCH='ppc64le' OPENSSL_ARCH='linux-ppc64le';; arm64) ARCH='arm64' OPENSSL_ARCH='linux-aarch64';; *) echo "unsupported architecture"; exit 1 ;; esac && set -ex && apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr xz-utils libatomic1 --no-install-recommends && rm -rf /var/lib/apt/lists/* && export GNUPGHOME="$(mktemp -d)" && for key in 5BE8A3F6C8A5C01D106C0AD820B1A390B168D356 DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7 CC68F5A3106FF448322E48ED27F5E38D5B0A215F 890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4 C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C 108F52B48DB57BB0CC439B2997B01419BD92F80A 655F3B5C1FB3FA8D1A0CA6BDE4A7D232B936D2FD A363A499291CBBC940DD62E41F10027AF002F8B0 ; do { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key"; } || { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ; done && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH.tar.xz" && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc && gpgconf --kill all && rm -rf "$GNUPGHOME" && grep " node-v$NODE_VERSION-linux-$ARCH.tar.xz\$" SHASUMS256.txt | sha256sum -c - && tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner && rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt && find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name "$OPENSSL_ARCH" -exec rm -rf {} \; && apt-mark auto '.*' > /dev/null && find /usr/local -type f -executable -exec ldd '{}' ';' | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' | sort -u | xargs -r dpkg-query --search | cut -d: -f1 | sort -u | xargs -r apt-mark manual && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false && ln -s /usr/local/bin/node /usr/local/bin/nodejs && node --version && npm --version && rm -rf /tmp/* # buildkit
2026-10-21 15:47:49 UTC (buildkit.dockerfile.v0)ENV YARN_VERSION=1.22.22
2026-10-21 15:48:23 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c set -ex && savedAptMark="$(apt-mark showmanual)" && apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr --no-install-recommends && rm -rf /var/lib/apt/lists/* && export GNUPGHOME="$(mktemp -d)" && for key in 6A010C5166006599AA17F08146C2130DFD2497F5 ; do { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key"; } || { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ; done && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" && gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz && gpgconf --kill all && rm -rf "$GNUPGHOME" && mkdir -p /opt && tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ && ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn && ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg && rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz && apt-mark auto '.*' > /dev/null && { [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; } && find /usr/local -type f -executable -exec ldd '{}' ';' | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' | sort -u | xargs -r dpkg-query --search | cut -d: -f1 | sort -u | xargs -r apt-mark manual && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false && yarn --version && rm -rf /tmp/* # buildkit
2026-10-21 15:48:24 UTC (buildkit.dockerfile.v0)COPY docker-entrypoint.sh /usr/local/bin/ # buildkit
2026-10-21 15:48:24 UTC (buildkit.dockerfile.v0)ENTRYPOINT ["docker-entrypoint.sh"]
2026-10-21 15:48:24 UTC (buildkit.dockerfile.v0)CMD ["node"]
2026-10-23 09:10:05 UTC (buildkit.dockerfile.v0)ENV NODE_ENV=production
2026-10-23 09:10:05 UTC (buildkit.dockerfile.v0)WORKDIR /data/api
2026-10-23 09:10:06 UTC (buildkit.dockerfile.v0)COPY package.json package-lock.json ./ # buildkit
2026-10-23 09:10:20 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c npm ci --omit=dev && npm cache clean --force # buildkit
2026-10-23 09:10:21 UTC (buildkit.dockerfile.v0)COPY app.js ./ # buildkit
2026-10-23 09:10:21 UTC (buildkit.dockerfile.v0)COPY utils ./utils # buildkit
2026-10-23 09:10:21 UTC (buildkit.dockerfile.v0)EXPOSE [8088/tcp]
2026-10-23 09:10:21 UTC (buildkit.dockerfile.v0)HEALTHCHECK {Test:[CMD-SHELL node -e "fetch('http://127.0.0.1:'+(process.env.PORT||8088)+(process.env.API_ROOT||'').replace(/\/+$/,'')+'/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"] Interval:30s Timeout:5s StartPeriod:10s StartInterval:0s Retries:3}
2026-10-23 09:10:21 UTC (buildkit.dockerfile.v0)CMD ["node" "app.js"]
2026-10-23 09:10:22 UTC
61.2 MB
production
NODE_VERSION24.22.1
PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
YARN_VERSION1.22.22
[#000] sha256:2272b0c2085ed29d31c21595617f773cb42db2e52c3b366debca9d4689770412 - 5.8% (3.55 MB)
[#001] sha256:7e54fa8204b2141ac8c7b4cffe96b5f069290cec4147b759103bdcaad6b539e2 - 89.12% (54.5 MB)
[#002] sha256:8e811037859fe782bcd86c8f75007fcfd705441935ef553fc4413111c00b5fa6 - 1.97% (1.2 MB)
[#003] sha256:12b48ba33f35133ab7b393fab16a7c7bc10ecd91fa5185bc03aec7694f28b201 - 0.0% (445 Bytes)
[#004] sha256:911f41c2493f986ce563470bbee599556aeca2a704cc1d1177e493fc2aece238 - 0.0% (111 Bytes)
[#005] sha256:7336b7b63043a6ff48ee302ce9398086eef088d27f6db92270ac094ce4dc2d6f - 0.02% (15.6 KB)
[#006] sha256:05a03c46f5a31dc8cc9b873e733d548fdad356aaafe4fe2976375db5fdc1ce1d - 3.08% (1.89 MB)
[#007] sha256:497f49895eaee9012fe6089df82eb345c2334bee546c3a4fec52439b50f202fd - 0.0% (2.46 KB)
[#008] sha256:7429e4184b88288a31ba1909dccf37e06a31ebebc47e0ac9028b0c8b012c102a - 0.0% (751 Bytes)
ADD alpine-minirootfs-3.24.3-s390x.tar.gz / # buildkit
2026-10-21 22:34:15 UTC (buildkit.dockerfile.v0)CMD ["/bin/sh"]
2026-10-22 00:58:48 UTC (buildkit.dockerfile.v0)ENV NODE_VERSION=24.22.1
2026-10-22 00:58:48 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c addgroup -g 1000 node && adduser -u 1000 -G node -s /bin/sh -D node && apk add --no-cache libatomic libstdc++ && apk add --no-cache --virtual .build-deps gnupg curl && ARCH= OPENSSL_ARCH='linux*' && alpineArch="$(apk --print-arch)" && case "${alpineArch##*-}" in x86_64) ARCH='x64' OPENSSL_ARCH=linux-x86_64;; aarch64) OPENSSL_ARCH=linux-aarch64;; s390x) OPENSSL_ARCH=linux-s390x;; *) echo "unsupported architecture"; exit 1 ;; esac && export GNUPGHOME="$(mktemp -d)" && set -ex && for key in 5BE8A3F6C8A5C01D106C0AD820B1A390B168D356 DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7 CC68F5A3106FF448322E48ED27F5E38D5B0A215F 890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4 C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C 108F52B48DB57BB0CC439B2997B01419BD92F80A 655F3B5C1FB3FA8D1A0CA6BDE4A7D232B936D2FD A363A499291CBBC940DD62E41F10027AF002F8B0 ; do { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key"; } || { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ; done && if [ "$ARCH" = "x64" ]; then curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc && gpgconf --kill all && rm -rf "$GNUPGHOME" && grep " node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz\$" SHASUMS256.txt | sha256sum -c - && tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner && rm "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt && ln -s /usr/local/bin/node /usr/local/bin/nodejs; else echo "Building from source" && apk add --no-cache --virtual .build-deps-full binutils-gold g++ gcc libgcc linux-headers make python3 py-setuptools && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz" && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc && gpgconf --kill all && rm -rf "$GNUPGHOME" && grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c - && tar -xf "node-v$NODE_VERSION.tar.xz" && cd "node-v$NODE_VERSION" && ./configure && make -j$(getconf _NPROCESSORS_ONLN) V= && make install && apk del .build-deps-full && cd .. && rm -Rf "node-v$NODE_VERSION" && rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt; fi && find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name "$OPENSSL_ARCH" -exec rm -rf {} \; && apk del .build-deps && node --version && npm --version && rm -rf /tmp/* # buildkit
2026-10-22 00:58:48 UTC (buildkit.dockerfile.v0)ENV YARN_VERSION=1.22.22
2026-10-22 00:58:52 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c apk add --no-cache --virtual .build-deps-yarn curl gnupg tar && export GNUPGHOME="$(mktemp -d)" && for key in 6A010C5166006599AA17F08146C2130DFD2497F5 ; do { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key"; } || { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ; done && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" && gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz && gpgconf --kill all && rm -rf "$GNUPGHOME" && mkdir -p /opt && tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ && ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn && ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg && rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz && apk del .build-deps-yarn && yarn --version && rm -rf /tmp/* # buildkit
2026-10-22 00:58:52 UTC (buildkit.dockerfile.v0)COPY docker-entrypoint.sh /usr/local/bin/ # buildkit
2026-10-22 00:58:52 UTC (buildkit.dockerfile.v0)ENTRYPOINT ["docker-entrypoint.sh"]
2026-10-22 00:58:52 UTC (buildkit.dockerfile.v0)CMD ["node"]
2026-10-23 09:10:07 UTC (buildkit.dockerfile.v0)ENV NODE_ENV=production
2026-10-23 09:10:07 UTC (buildkit.dockerfile.v0)WORKDIR /data/api
2026-10-23 09:10:07 UTC (buildkit.dockerfile.v0)COPY package.json package-lock.json ./ # buildkit
2026-10-23 09:10:21 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c npm ci --omit=dev && npm cache clean --force # buildkit
2026-10-23 09:10:21 UTC (buildkit.dockerfile.v0)COPY app.js ./ # buildkit
2026-10-23 09:10:22 UTC (buildkit.dockerfile.v0)COPY utils ./utils # buildkit
2026-10-23 09:10:22 UTC (buildkit.dockerfile.v0)EXPOSE [8088/tcp]
2026-10-23 09:10:22 UTC (buildkit.dockerfile.v0)HEALTHCHECK {Test:[CMD-SHELL node -e "fetch('http://127.0.0.1:'+(process.env.PORT||8088)+(process.env.API_ROOT||'').replace(/\/+$/,'')+'/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"] Interval:30s Timeout:5s StartPeriod:10s StartInterval:0s Retries:3}
2026-10-23 09:10:22 UTC (buildkit.dockerfile.v0)CMD ["node" "app.js"]
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.