2026-07-22 12:08:53 UTC
947 MB
noninteractive
DISPLAY:1
NODE_VERSION22.23.1
PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
SNOWLUMA_DATA/app/snowluma-data
SNOWLUMA_EXTRA_QQ_HOMES SNOWLUMA_GID1000
SNOWLUMA_HOME/app/snowluma
SNOWLUMA_HOOK_AUTOLOAD1
SNOWLUMA_LOG_LEVELinfo
SNOWLUMA_QQ_FLAGS--disable-gpu --disable-software-rasterizer --disable-gpu-compositing
SNOWLUMA_SCREEN1920x1080x24
SNOWLUMA_UID1000
SNOWLUMA_WEBUI_PORT5099
TZAsia/Shanghai
VNC_PASSWDvncpasswd
YARN_VERSION1.22.22
[#000] sha256:597c6c618d36213af657a6a8444a5d87801f9a219682b206ad21ccb8f3e57bbd - 2.84% (26.9 MB)
[#001] sha256:e33bee2ce77b0c3748e6a8f2b808a5ab1d2ed466d5ee5a9b991cba597bd028e2 - 0.0% (3.23 KB)
[#002] sha256:bb65bd65926c2b38f8a7d518cefa8524e1484182dd6ffba7883654d886b4cfb3 - 5.03% (47.6 MB)
[#003] sha256:392df1351ac2d7628088ee58b248e62a2c1b749e4beb94b7640994df1857c8ca - 0.17% (1.63 MB)
[#004] sha256:437216719022b2853003498de36b055604c6ff1bcee290b912ed44226f2d3d46 - 0.0% (446 Bytes)
[#005] sha256:54a22b29734daf496000a84a9e054e73eaf3f0e7cf4ff188aad461daa8752e49 - 0.0% (262 Bytes)
[#006] sha256:d6ee92daea90c5aa11197cd31344ffda157aad7720b5df758e26c48b066eb653 - 32.97% (312 MB)
[#007] sha256:77890489c985a0e2753820c7094f9401de86fe0058d2ea1090330f9a25584fdd - 26.9% (255 MB)
[#008] sha256:fb1d04ad389053bc71e237d666f629fee86c20c88d7ac9102c47399a070a49a9 - 0.34% (3.25 MB)
[#009] sha256:1ee91fb17d92aa374e19c31647e497aff593f0c8b3d32472517ed2c6c659ff35 - 0.0% (632 Bytes)
[#010] sha256:fe1d9002e5e0d89f34af7adc86308c392c4353bc00e654fd8a60d09ee291ba9e - 0.0% (2.87 KB)
[#011] sha256:037cbfd7d38b6735176a31d247ca7ff949232c435071ab0a34fcb73e8c30bc21 - 31.73% (300 MB)
[#012] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)
# debian.sh --arch 'amd64' out/ 'bookworm' '@1783900800'
2026-07-14 01:47:21 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-07-14 01:48:25 UTC (buildkit.dockerfile.v0)ENV NODE_VERSION=22.23.1
2026-07-14 01:48:25 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';; s390x) ARCH='s390x' OPENSSL_ARCH='linux*-s390x';; arm64) ARCH='arm64' OPENSSL_ARCH='linux-aarch64';; armhf) ARCH='armv7l' OPENSSL_ARCH='linux-armv4';; *) 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 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4 C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C 108F52B48DB57BB0CC439B2997B01419BD92F80A 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-07-14 01:48:25 UTC (buildkit.dockerfile.v0)ENV YARN_VERSION=1.22.22
2026-07-14 01:48:37 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-07-14 01:48:37 UTC (buildkit.dockerfile.v0)COPY docker-entrypoint.sh /usr/local/bin/ # buildkit
2026-07-14 01:48:37 UTC (buildkit.dockerfile.v0)ENTRYPOINT ["docker-entrypoint.sh"]
2026-07-14 01:48:37 UTC (buildkit.dockerfile.v0)CMD ["node"]
2026-07-22 12:07:24 UTC (buildkit.dockerfile.v0)ARG TARGETARCH=amd64
2026-07-22 12:07:24 UTC (buildkit.dockerfile.v0)ARG QQ_VERSION=3.2.31-51102
2026-07-22 12:07:24 UTC (buildkit.dockerfile.v0)ARG QQ_CHANNEL=c390e792
2026-07-22 12:07:24 UTC (buildkit.dockerfile.v0)ARG QQ_BASE_URL=https://qqdl.gtimg.cn/qqfile/QQNT/9.9.32/beta
2026-07-22 12:07:24 UTC (buildkit.dockerfile.v0)ENV DEBIAN_FRONTEND=noninteractive VNC_PASSWD=vncpasswd TZ=Asia/Shanghai SNOWLUMA_HOME=/app/snowluma SNOWLUMA_DATA=/app/snowluma-data SNOWLUMA_WEBUI_PORT=5099 SNOWLUMA_UID=1000 SNOWLUMA_GID=1000 SNOWLUMA_LOG_LEVEL=info SNOWLUMA_SCREEN=1920x1080x24 SNOWLUMA_HOOK_AUTOLOAD=1 SNOWLUMA_EXTRA_QQ_HOMES= SNOWLUMA_QQ_FLAGS=--disable-gpu --disable-software-rasterizer --disable-gpu-compositing DISPLAY=:1
2026-07-22 12:07:24 UTC (buildkit.dockerfile.v0)RUN |4 TARGETARCH=amd64 QQ_VERSION=3.2.31-51102 QQ_CHANNEL=c390e792 QQ_BASE_URL=https://qqdl.gtimg.cn/qqfile/QQNT/9.9.32/beta /bin/sh -c rm -f /etc/apt/apt.conf.d/docker-clean; echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache # buildkit
2026-07-22 12:08:22 UTC (buildkit.dockerfile.v0)RUN |4 TARGETARCH=amd64 QQ_VERSION=3.2.31-51102 QQ_CHANNEL=c390e792 QQ_BASE_URL=https://qqdl.gtimg.cn/qqfile/QQNT/9.9.32/beta /bin/sh -c apt-get update && apt-get install -y --no-install-recommends aria2 ca-certificates curl dbus-user-session ffmpeg fluxbox fonts-wqy-zenhei git gnutls-bin iproute2 libasound2 libatspi2.0-0 libcap2-bin libgbm1 libgtk-3-0 libnotify4 libnss3 libsecret-1-0 openbox procps supervisor tzdata unzip x11vnc xdg-utils xorg xvfb && echo "${TZ}" > /etc/timezone && ln -sf "/usr/share/zoneinfo/${TZ}" /etc/localtime && cd /opt && git clone --depth=1 https://github.com/novnc/noVNC.git && cd /opt/noVNC/utils && git clone --depth=1 https://github.com/novnc/websockify.git && cp /opt/noVNC/vnc.html /opt/noVNC/index.html && apt-get autoremove -y && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # buildkit
2026-07-22 12:08:46 UTC (buildkit.dockerfile.v0)RUN |4 TARGETARCH=amd64 QQ_VERSION=3.2.31-51102 QQ_CHANNEL=c390e792 QQ_BASE_URL=https://qqdl.gtimg.cn/qqfile/QQNT/9.9.32/beta /bin/sh -c set -eux; qq_arch="$(dpkg --print-architecture)"; case "${qq_arch}" in amd64|arm64) ;; *) echo "Unsupported Debian architecture: ${qq_arch}" >&2; exit 1 ;; esac; apt-get update && aria2c --check-certificate=false -x16 -s16 -o /tmp/linuxqq.deb "${QQ_BASE_URL}/${QQ_CHANNEL}/linuxqq_${QQ_VERSION}_${qq_arch}.deb" && (dpkg -i /tmp/linuxqq.deb || apt-get -f install -y --no-install-recommends) && rm -f /tmp/linuxqq.deb && chmod 777 /opt/QQ && apt-get clean && rm -rf /var/lib/apt/lists/* # buildkit
2026-07-22 12:08:46 UTC (buildkit.dockerfile.v0)COPY SnowLuma.Framework.tar.gz /tmp/SnowLuma.Framework.tar.gz # buildkit
2026-07-22 12:08:46 UTC (buildkit.dockerfile.v0)COPY supervisord.conf /etc/supervisord.conf # buildkit
2026-07-22 12:08:46 UTC (buildkit.dockerfile.v0)COPY start.sh /root/start.sh # buildkit
2026-07-22 12:08:53 UTC (buildkit.dockerfile.v0)RUN |4 TARGETARCH=amd64 QQ_VERSION=3.2.31-51102 QQ_CHANNEL=c390e792 QQ_BASE_URL=https://qqdl.gtimg.cn/qqfile/QQNT/9.9.32/beta /bin/sh -c chmod +x /root/start.sh && groupadd --gid 1001 snowluma && useradd --no-log-init --uid 1001 --gid 1001 --home-dir /app --shell /bin/bash snowluma && mkdir -p "${SNOWLUMA_HOME}" "${SNOWLUMA_DATA}" /app/.cache /app/.config /app/.local/share /etc/supervisor/conf.d && tar -xzf /tmp/SnowLuma.Framework.tar.gz -C "${SNOWLUMA_HOME}" && case "$(dpkg --print-architecture)" in amd64) native_arch="x64" ;; arm64) native_arch="arm64" ;; *) echo "Unsupported Debian architecture: $(dpkg --print-architecture)" >&2; exit 1 ;; esac && test -f "${SNOWLUMA_HOME}/index.mjs" && test -f "${SNOWLUMA_HOME}/native/snowluma-linux-${native_arch}.node" && test -f "${SNOWLUMA_HOME}/native/snowluma-linux-${native_arch}.so" && test -f "${SNOWLUMA_HOME}/native/websocket-linux-${native_arch}.node" && setcap cap_sys_ptrace+ep /usr/local/bin/node && rm -f /tmp/SnowLuma.Framework.tar.gz && chown -R snowluma:snowluma /app /opt/QQ # buildkit
2026-07-22 12:08:53 UTC (buildkit.dockerfile.v0)WORKDIR /app/snowluma-data
2026-07-22 12:08:53 UTC (buildkit.dockerfile.v0)EXPOSE [3000/tcp 3001/tcp 5099/tcp 5900/tcp 6081/tcp]
2026-07-22 12:08:53 UTC (buildkit.dockerfile.v0)VOLUME [/app/snowluma-data /app/.config /app/.local/share]
2026-07-22 12:08:53 UTC (buildkit.dockerfile.v0)CMD ["/root/start.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.