2026-08-13 03:59:56 UTC
30.2 MB
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[#000] sha256:17a39c0ba978cc27001e9c56a480f98106e1ab74bd56eb302f9fd4cf758ea43f - 10.79% (3.26 MB)
[#001] sha256:07c4b9a3c1c0b2ecabc76347427adf25fad6d1667f9f1cb399f843494bc7fc77 - 13.17% (3.98 MB)
[#002] sha256:1a8573f7c0db74cc9e6cf480225735a75608b7ed514ee65a4eff32f8d7bbbeb4 - 0.0% (105 Bytes)
[#003] sha256:3e5d80a67f285d6f900e78f5a4b2df0aa3326d26ccb4eaf19ea1502c2b69f227 - 43.4% (13.1 MB)
[#004] sha256:b9824abdccd2f1f867ecab2de44533e86f4d0960fdd01a3285ad8a87f3c207de - 3.1% (961 KB)
[#005] sha256:41ca61f222ee5ce561cd116d404f35fa41ef55ea4fcac42275bfe4f9a4ce99db - 17.51% (5.29 MB)
[#006] sha256:3b29d1001416669b1c60add9cc6873cc150d6e41c672fcd8d98fa091233a742a - 12.01% (3.63 MB)
[#007] sha256:59e6f4e5e6f0aaa8b177e52160bacb6261af32835d4f30b947c324ac4dd68d18 - 0.0% (423 Bytes)
[#008] sha256:178a9507c2dfdbc36928d9827fe2bce5736688f4a6b6926ba7b79700e7f2b89b - 0.02% (6.09 KB)
[#009] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)
ADD alpine-minirootfs-3.19.9-x86_64.tar.gz / # buildkit
2025-10-08 11:10:40 UTC (buildkit.dockerfile.v0)CMD ["/bin/sh"]
2026-08-13 03:59:53 UTC (buildkit.dockerfile.v0)ARG TARGETPLATFORM=linux/amd64
2026-08-13 03:59:53 UTC (buildkit.dockerfile.v0)ARG TARGETARCH=amd64
2026-08-13 03:59:53 UTC (buildkit.dockerfile.v0)ARG CACHEBUST=c882bd70d24d247cf4dec16f0e51ee37c0238e9e
2026-08-13 03:59:53 UTC (buildkit.dockerfile.v0)RUN |3 TARGETPLATFORM=linux/amd64 TARGETARCH=amd64 CACHEBUST=c882bd70d24d247cf4dec16f0e51ee37c0238e9e /bin/sh -c echo "cache=${CACHEBUST:-}" > /dev/null && { [ -n "${http_proxy}" ] && echo "Using proxy: ${http_proxy}" || true; } && apk add --no-cache curl bash wget gzip tar tzdata dcron && rm -rf /tmp/* /var/tmp/* /var/lib/apt/lists/* /var/cache/apt/archives/* # buildkit
2026-08-13 03:59:53 UTC (buildkit.dockerfile.v0)WORKDIR /clash-for-linux
2026-08-13 03:59:53 UTC (buildkit.dockerfile.v0)ARG TARGETARCH=amd64
2026-08-13 03:59:54 UTC (buildkit.dockerfile.v0)RUN |3 TARGETPLATFORM=linux/amd64 TARGETARCH=amd64 CACHEBUST=c882bd70d24d247cf4dec16f0e51ee37c0238e9e /bin/sh -c MIHOMO_VERSION="v1.19.24" && case ${TARGETARCH} in amd64) CLASH_ASSET="mihomo-linux-amd64-v1-${MIHOMO_VERSION}.gz" ;; arm64) CLASH_ASSET="mihomo-linux-arm64-${MIHOMO_VERSION}.gz" ;; arm) CLASH_ASSET="mihomo-linux-armv7-${MIHOMO_VERSION}.gz" ;; *) echo "Unsupported architecture: ${TARGETARCH}" && exit 1 ;; esac && echo "Building for ${TARGETPLATFORM}, downloading Mihomo ${MIHOMO_VERSION} (${CLASH_ASSET})..." && wget -O /tmp/clash.gz "https://github.com/MetaCubeX/mihomo/releases/download/${MIHOMO_VERSION}/${CLASH_ASSET}" && gunzip /tmp/clash.gz && mv /tmp/clash /usr/local/bin/clash && chmod +x /usr/local/bin/clash && rm -rf /tmp/* /var/tmp/* && echo "Mihomo ${MIHOMO_VERSION} downloaded and installed as /usr/local/bin/clash" # buildkit
2026-08-13 03:59:55 UTC (buildkit.dockerfile.v0)RUN |3 TARGETPLATFORM=linux/amd64 TARGETARCH=amd64 CACHEBUST=c882bd70d24d247cf4dec16f0e51ee37c0238e9e /bin/sh -c mkdir -p /root/.config/clash/dashboard && METACUBEXD_VERSION="v1.247.1" && echo "Downloading MetaCubeXD dashboard ${METACUBEXD_VERSION}..." && wget -O /tmp/dashboard.tgz "https://github.com/MetaCubeX/metacubexd/releases/download/${METACUBEXD_VERSION}/compressed-dist.tgz" && tar -xzf /tmp/dashboard.tgz -C /root/.config/clash/dashboard/ && rm -rf /tmp/* /var/tmp/* && echo "MetaCubeXD dashboard downloaded and extracted" # buildkit
2026-08-13 03:59:55 UTC (buildkit.dockerfile.v0)ARG GEO_DAT_URL=
2026-08-13 03:59:55 UTC (buildkit.dockerfile.v0)RUN |4 TARGETPLATFORM=linux/amd64 TARGETARCH=amd64 CACHEBUST=c882bd70d24d247cf4dec16f0e51ee37c0238e9e GEO_DAT_URL= /bin/sh -c set -u; mkdir -p /root/.config/clash; if [ -n "${GEO_DAT_URL:-}" ]; then GEO_URL_LIST="${GEO_DAT_URL} https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest https://ghfast.top/https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest"; else GEO_URL_LIST="https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest https://ghfast.top/https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest"; fi; fetch_geo() { _file="$1"; for _base in $GEO_URL_LIST; do _try=1; while [ "$_try" -le 3 ]; do echo "⬇️ Downloading ${_file} from ${_base} (attempt ${_try}/3) ..."; if wget -T 30 -q -O "/root/.config/clash/${_file}" "${_base}/${_file}"; then echo "✅ ${_file} downloaded from ${_base}"; return 0; fi; rm -f "/root/.config/clash/${_file}"; _try=$((_try + 1)); sleep 3; done; done; echo "⚠️ WARNING: failed to download ${_file} from all sources; build continues."; echo " You can provide it later via the /app/config mount (${_file})."; return 0; }; fetch_geo geoip.metadb; fetch_geo geosite.dat; rm -rf /tmp/* /var/tmp/*; echo "Geo databases present in /root/.config/clash:"; ls -lh /root/.config/clash/ || true # buildkit
2026-08-13 03:59:55 UTC (buildkit.dockerfile.v0)ARG TARGETARCH=amd64
2026-08-13 03:59:56 UTC (buildkit.dockerfile.v0)RUN |4 TARGETPLATFORM=linux/amd64 TARGETARCH=amd64 CACHEBUST=c882bd70d24d247cf4dec16f0e51ee37c0238e9e GEO_DAT_URL= /bin/sh -c mkdir -p /app/tools && SUBCONVERTER_VERSION="v0.9.0" && case ${TARGETARCH} in amd64) SUBCONVERTER_ARCH="linux64" ;; arm64) SUBCONVERTER_ARCH="aarch64" ;; arm) SUBCONVERTER_ARCH="armv7" ;; *) echo "Unsupported architecture: ${TARGETARCH}" && exit 1 ;; esac && echo "Downloading subconverter ${SUBCONVERTER_VERSION} for $SUBCONVERTER_ARCH..." && wget -O /tmp/subconverter.tar.gz "https://github.com/tindy2013/subconverter/releases/download/${SUBCONVERTER_VERSION}/subconverter_${SUBCONVERTER_ARCH}.tar.gz" && tar -xzf /tmp/subconverter.tar.gz -C /app/tools && chmod +x /app/tools/subconverter/subconverter && rm -rf /tmp/* /var/tmp/* && echo "Subconverter ${SUBCONVERTER_VERSION} downloaded and installed" # buildkit
2026-08-13 03:59:56 UTC (buildkit.dockerfile.v0)COPY config/config.yaml.example /config/config.yaml.example # buildkit
2026-08-13 03:59:56 UTC (buildkit.dockerfile.v0)EXPOSE [7890/tcp 7891/tcp 9090/tcp]
2026-08-13 03:59:56 UTC (buildkit.dockerfile.v0)COPY scripts/*.sh /app/scripts/ # buildkit
2026-08-13 03:59:56 UTC (buildkit.dockerfile.v0)RUN |4 TARGETPLATFORM=linux/amd64 TARGETARCH=amd64 CACHEBUST=c882bd70d24d247cf4dec16f0e51ee37c0238e9e GEO_DAT_URL= /bin/sh -c chmod +x /app/scripts/*.sh # buildkit
2026-08-13 03:59:56 UTC (buildkit.dockerfile.v0)HEALTHCHECK {Test:[CMD /bin/sh /app/scripts/healthcheck.sh] Interval:30s Timeout:10s StartPeriod:10s StartInterval:0s Retries:3}
2026-08-13 03:59:56 UTC (buildkit.dockerfile.v0)ENTRYPOINT ["/app/scripts/entrypoint.sh"]
2026-08-13 04:00:04 UTC
28.3 MB
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[#000] sha256:2f990bb0b7946d072525d9816f341e403a9861710dbc4d3433a1dbb7ec34029a - 9.88% (2.79 MB)
[#001] sha256:2c0d497740e362b1e314e3f497df888720f780c53589c2f2bdc0bf991e12bfa2 - 13.14% (3.71 MB)
[#002] sha256:36ae10bda469631d39e8462faf93bf3e422a50d3673396aa3bfc8ea46423f738 - 0.0% (105 Bytes)
[#003] sha256:083720c3c298c07356b8f4f449359e0f081321d7523347e81121ff28900b438c - 43.35% (12.2 MB)
[#004] sha256:cbc626a22257d3a0bb78b3313bebf1dcca493399647fac76f7e12ddae70596f1 - 3.32% (961 KB)
[#005] sha256:2cc183749b1ecabd7c13b713bb9bad5740fa0d6f1b8c78d08b873b0c3ee3f6bf - 18.74% (5.29 MB)
[#006] sha256:5ae89eecc1562457151ac51eeed861983866cf1e423d9c0785be5cf797eea21c - 11.56% (3.27 MB)
[#007] sha256:e803e2d22fac738be540ef32ab61ba64d4d3e4d621730bcc1a1abd05009d1c30 - 0.0% (424 Bytes)
[#008] sha256:64f60f5dcfe5f16bbfb54581e0bbc2b759577ab1ea24154742ca1409606e0308 - 0.02% (6.09 KB)
[#009] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)
ADD alpine-minirootfs-3.19.9-armv7.tar.gz / # buildkit
2025-10-08 11:10:40 UTC (buildkit.dockerfile.v0)CMD ["/bin/sh"]
2026-08-13 03:59:58 UTC (buildkit.dockerfile.v0)ARG TARGETPLATFORM=linux/arm/v7
2026-08-13 03:59:58 UTC (buildkit.dockerfile.v0)ARG TARGETARCH=arm
2026-08-13 03:59:58 UTC (buildkit.dockerfile.v0)ARG CACHEBUST=c882bd70d24d247cf4dec16f0e51ee37c0238e9e
2026-08-13 03:59:58 UTC (buildkit.dockerfile.v0)RUN |3 TARGETPLATFORM=linux/arm/v7 TARGETARCH=arm CACHEBUST=c882bd70d24d247cf4dec16f0e51ee37c0238e9e /bin/sh -c echo "cache=${CACHEBUST:-}" > /dev/null && { [ -n "${http_proxy}" ] && echo "Using proxy: ${http_proxy}" || true; } && apk add --no-cache curl bash wget gzip tar tzdata dcron && rm -rf /tmp/* /var/tmp/* /var/lib/apt/lists/* /var/cache/apt/archives/* # buildkit
2026-08-13 03:59:58 UTC (buildkit.dockerfile.v0)WORKDIR /clash-for-linux
2026-08-13 03:59:58 UTC (buildkit.dockerfile.v0)ARG TARGETARCH=arm
2026-08-13 04:00:00 UTC (buildkit.dockerfile.v0)RUN |3 TARGETPLATFORM=linux/arm/v7 TARGETARCH=arm CACHEBUST=c882bd70d24d247cf4dec16f0e51ee37c0238e9e /bin/sh -c MIHOMO_VERSION="v1.19.24" && case ${TARGETARCH} in amd64) CLASH_ASSET="mihomo-linux-amd64-v1-${MIHOMO_VERSION}.gz" ;; arm64) CLASH_ASSET="mihomo-linux-arm64-${MIHOMO_VERSION}.gz" ;; arm) CLASH_ASSET="mihomo-linux-armv7-${MIHOMO_VERSION}.gz" ;; *) echo "Unsupported architecture: ${TARGETARCH}" && exit 1 ;; esac && echo "Building for ${TARGETPLATFORM}, downloading Mihomo ${MIHOMO_VERSION} (${CLASH_ASSET})..." && wget -O /tmp/clash.gz "https://github.com/MetaCubeX/mihomo/releases/download/${MIHOMO_VERSION}/${CLASH_ASSET}" && gunzip /tmp/clash.gz && mv /tmp/clash /usr/local/bin/clash && chmod +x /usr/local/bin/clash && rm -rf /tmp/* /var/tmp/* && echo "Mihomo ${MIHOMO_VERSION} downloaded and installed as /usr/local/bin/clash" # buildkit
2026-08-13 04:00:01 UTC (buildkit.dockerfile.v0)RUN |3 TARGETPLATFORM=linux/arm/v7 TARGETARCH=arm CACHEBUST=c882bd70d24d247cf4dec16f0e51ee37c0238e9e /bin/sh -c mkdir -p /root/.config/clash/dashboard && METACUBEXD_VERSION="v1.247.1" && echo "Downloading MetaCubeXD dashboard ${METACUBEXD_VERSION}..." && wget -O /tmp/dashboard.tgz "https://github.com/MetaCubeX/metacubexd/releases/download/${METACUBEXD_VERSION}/compressed-dist.tgz" && tar -xzf /tmp/dashboard.tgz -C /root/.config/clash/dashboard/ && rm -rf /tmp/* /var/tmp/* && echo "MetaCubeXD dashboard downloaded and extracted" # buildkit
2026-08-13 04:00:01 UTC (buildkit.dockerfile.v0)ARG GEO_DAT_URL=
2026-08-13 04:00:03 UTC (buildkit.dockerfile.v0)RUN |4 TARGETPLATFORM=linux/arm/v7 TARGETARCH=arm CACHEBUST=c882bd70d24d247cf4dec16f0e51ee37c0238e9e GEO_DAT_URL= /bin/sh -c set -u; mkdir -p /root/.config/clash; if [ -n "${GEO_DAT_URL:-}" ]; then GEO_URL_LIST="${GEO_DAT_URL} https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest https://ghfast.top/https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest"; else GEO_URL_LIST="https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest https://ghfast.top/https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest"; fi; fetch_geo() { _file="$1"; for _base in $GEO_URL_LIST; do _try=1; while [ "$_try" -le 3 ]; do echo "⬇️ Downloading ${_file} from ${_base} (attempt ${_try}/3) ..."; if wget -T 30 -q -O "/root/.config/clash/${_file}" "${_base}/${_file}"; then echo "✅ ${_file} downloaded from ${_base}"; return 0; fi; rm -f "/root/.config/clash/${_file}"; _try=$((_try + 1)); sleep 3; done; done; echo "⚠️ WARNING: failed to download ${_file} from all sources; build continues."; echo " You can provide it later via the /app/config mount (${_file})."; return 0; }; fetch_geo geoip.metadb; fetch_geo geosite.dat; rm -rf /tmp/* /var/tmp/*; echo "Geo databases present in /root/.config/clash:"; ls -lh /root/.config/clash/ || true # buildkit
2026-08-13 04:00:03 UTC (buildkit.dockerfile.v0)ARG TARGETARCH=arm
2026-08-13 04:00:04 UTC (buildkit.dockerfile.v0)RUN |4 TARGETPLATFORM=linux/arm/v7 TARGETARCH=arm CACHEBUST=c882bd70d24d247cf4dec16f0e51ee37c0238e9e GEO_DAT_URL= /bin/sh -c mkdir -p /app/tools && SUBCONVERTER_VERSION="v0.9.0" && case ${TARGETARCH} in amd64) SUBCONVERTER_ARCH="linux64" ;; arm64) SUBCONVERTER_ARCH="aarch64" ;; arm) SUBCONVERTER_ARCH="armv7" ;; *) echo "Unsupported architecture: ${TARGETARCH}" && exit 1 ;; esac && echo "Downloading subconverter ${SUBCONVERTER_VERSION} for $SUBCONVERTER_ARCH..." && wget -O /tmp/subconverter.tar.gz "https://github.com/tindy2013/subconverter/releases/download/${SUBCONVERTER_VERSION}/subconverter_${SUBCONVERTER_ARCH}.tar.gz" && tar -xzf /tmp/subconverter.tar.gz -C /app/tools && chmod +x /app/tools/subconverter/subconverter && rm -rf /tmp/* /var/tmp/* && echo "Subconverter ${SUBCONVERTER_VERSION} downloaded and installed" # buildkit
2026-08-13 04:00:04 UTC (buildkit.dockerfile.v0)COPY config/config.yaml.example /config/config.yaml.example # buildkit
2026-08-13 04:00:04 UTC (buildkit.dockerfile.v0)EXPOSE [7890/tcp 7891/tcp 9090/tcp]
2026-08-13 04:00:04 UTC (buildkit.dockerfile.v0)COPY scripts/*.sh /app/scripts/ # buildkit
2026-08-13 04:00:04 UTC (buildkit.dockerfile.v0)RUN |4 TARGETPLATFORM=linux/arm/v7 TARGETARCH=arm CACHEBUST=c882bd70d24d247cf4dec16f0e51ee37c0238e9e GEO_DAT_URL= /bin/sh -c chmod +x /app/scripts/*.sh # buildkit
2026-08-13 04:00:04 UTC (buildkit.dockerfile.v0)HEALTHCHECK {Test:[CMD /bin/sh /app/scripts/healthcheck.sh] Interval:30s Timeout:10s StartPeriod:10s StartInterval:0s Retries:3}
2026-08-13 04:00:04 UTC (buildkit.dockerfile.v0)ENTRYPOINT ["/app/scripts/entrypoint.sh"]
2026-08-13 04:00:02 UTC
28.9 MB
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[#000] sha256:5711127a7748d32f5a69380c27daf1382f2c6674ea7a60d2a3e338818590fea1 - 11.07% (3.2 MB)
[#001] sha256:f3ed541971af9e3ff8b251106f03a298b88e03677c86b74f7e5d47d113149dc7 - 14.13% (4.09 MB)
[#002] sha256:6e5cb9d358689c4a515f72c8aa547f15142fb3a3261592631ab96d235dbf7e46 - 0.0% (105 Bytes)
[#003] sha256:4e05f60f9101e0cc11e9c7d04bd45ffad6bb82300ac2235b4ef15abd128cc5f4 - 40.96% (11.9 MB)
[#004] sha256:4234c04bd7dfc31f360507011ddf08eb9371ee8cb08eaaa08fb034a278233894 - 3.24% (961 KB)
[#005] sha256:27195596f0c19a8504d6139bee2603ef5a678e7cf91255037d40dbd99322fa34 - 18.29% (5.29 MB)
[#006] sha256:b875a57ea15802f12edd4505e266046322a8d44b509bd0fbcf0f853eee44f728 - 12.29% (3.56 MB)
[#007] sha256:d4e02ba3cc230e25315260ad77dbe737fa1080b4ab78f2d3ace48db2b317516a - 0.0% (423 Bytes)
[#008] sha256:da340a987a8521a8638ad33f2436be3a78335d53610f3ad5fe2452d8a277dfdc - 0.02% (6.09 KB)
[#009] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)
ADD alpine-minirootfs-3.19.9-aarch64.tar.gz / # buildkit
2025-10-08 11:10:40 UTC (buildkit.dockerfile.v0)CMD ["/bin/sh"]
2026-08-13 03:59:56 UTC (buildkit.dockerfile.v0)ARG TARGETPLATFORM=linux/arm64
2026-08-13 03:59:56 UTC (buildkit.dockerfile.v0)ARG TARGETARCH=arm64
2026-08-13 03:59:56 UTC (buildkit.dockerfile.v0)ARG CACHEBUST=c882bd70d24d247cf4dec16f0e51ee37c0238e9e
2026-08-13 03:59:56 UTC (buildkit.dockerfile.v0)RUN |3 TARGETPLATFORM=linux/arm64 TARGETARCH=arm64 CACHEBUST=c882bd70d24d247cf4dec16f0e51ee37c0238e9e /bin/sh -c echo "cache=${CACHEBUST:-}" > /dev/null && { [ -n "${http_proxy}" ] && echo "Using proxy: ${http_proxy}" || true; } && apk add --no-cache curl bash wget gzip tar tzdata dcron && rm -rf /tmp/* /var/tmp/* /var/lib/apt/lists/* /var/cache/apt/archives/* # buildkit
2026-08-13 03:59:56 UTC (buildkit.dockerfile.v0)WORKDIR /clash-for-linux
2026-08-13 03:59:56 UTC (buildkit.dockerfile.v0)ARG TARGETARCH=arm64
2026-08-13 03:59:58 UTC (buildkit.dockerfile.v0)RUN |3 TARGETPLATFORM=linux/arm64 TARGETARCH=arm64 CACHEBUST=c882bd70d24d247cf4dec16f0e51ee37c0238e9e /bin/sh -c MIHOMO_VERSION="v1.19.24" && case ${TARGETARCH} in amd64) CLASH_ASSET="mihomo-linux-amd64-v1-${MIHOMO_VERSION}.gz" ;; arm64) CLASH_ASSET="mihomo-linux-arm64-${MIHOMO_VERSION}.gz" ;; arm) CLASH_ASSET="mihomo-linux-armv7-${MIHOMO_VERSION}.gz" ;; *) echo "Unsupported architecture: ${TARGETARCH}" && exit 1 ;; esac && echo "Building for ${TARGETPLATFORM}, downloading Mihomo ${MIHOMO_VERSION} (${CLASH_ASSET})..." && wget -O /tmp/clash.gz "https://github.com/MetaCubeX/mihomo/releases/download/${MIHOMO_VERSION}/${CLASH_ASSET}" && gunzip /tmp/clash.gz && mv /tmp/clash /usr/local/bin/clash && chmod +x /usr/local/bin/clash && rm -rf /tmp/* /var/tmp/* && echo "Mihomo ${MIHOMO_VERSION} downloaded and installed as /usr/local/bin/clash" # buildkit
2026-08-13 03:59:59 UTC (buildkit.dockerfile.v0)RUN |3 TARGETPLATFORM=linux/arm64 TARGETARCH=arm64 CACHEBUST=c882bd70d24d247cf4dec16f0e51ee37c0238e9e /bin/sh -c mkdir -p /root/.config/clash/dashboard && METACUBEXD_VERSION="v1.247.1" && echo "Downloading MetaCubeXD dashboard ${METACUBEXD_VERSION}..." && wget -O /tmp/dashboard.tgz "https://github.com/MetaCubeX/metacubexd/releases/download/${METACUBEXD_VERSION}/compressed-dist.tgz" && tar -xzf /tmp/dashboard.tgz -C /root/.config/clash/dashboard/ && rm -rf /tmp/* /var/tmp/* && echo "MetaCubeXD dashboard downloaded and extracted" # buildkit
2026-08-13 03:59:59 UTC (buildkit.dockerfile.v0)ARG GEO_DAT_URL=
2026-08-13 04:00:01 UTC (buildkit.dockerfile.v0)RUN |4 TARGETPLATFORM=linux/arm64 TARGETARCH=arm64 CACHEBUST=c882bd70d24d247cf4dec16f0e51ee37c0238e9e GEO_DAT_URL= /bin/sh -c set -u; mkdir -p /root/.config/clash; if [ -n "${GEO_DAT_URL:-}" ]; then GEO_URL_LIST="${GEO_DAT_URL} https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest https://ghfast.top/https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest"; else GEO_URL_LIST="https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest https://ghfast.top/https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest"; fi; fetch_geo() { _file="$1"; for _base in $GEO_URL_LIST; do _try=1; while [ "$_try" -le 3 ]; do echo "⬇️ Downloading ${_file} from ${_base} (attempt ${_try}/3) ..."; if wget -T 30 -q -O "/root/.config/clash/${_file}" "${_base}/${_file}"; then echo "✅ ${_file} downloaded from ${_base}"; return 0; fi; rm -f "/root/.config/clash/${_file}"; _try=$((_try + 1)); sleep 3; done; done; echo "⚠️ WARNING: failed to download ${_file} from all sources; build continues."; echo " You can provide it later via the /app/config mount (${_file})."; return 0; }; fetch_geo geoip.metadb; fetch_geo geosite.dat; rm -rf /tmp/* /var/tmp/*; echo "Geo databases present in /root/.config/clash:"; ls -lh /root/.config/clash/ || true # buildkit
2026-08-13 04:00:01 UTC (buildkit.dockerfile.v0)ARG TARGETARCH=arm64
2026-08-13 04:00:02 UTC (buildkit.dockerfile.v0)RUN |4 TARGETPLATFORM=linux/arm64 TARGETARCH=arm64 CACHEBUST=c882bd70d24d247cf4dec16f0e51ee37c0238e9e GEO_DAT_URL= /bin/sh -c mkdir -p /app/tools && SUBCONVERTER_VERSION="v0.9.0" && case ${TARGETARCH} in amd64) SUBCONVERTER_ARCH="linux64" ;; arm64) SUBCONVERTER_ARCH="aarch64" ;; arm) SUBCONVERTER_ARCH="armv7" ;; *) echo "Unsupported architecture: ${TARGETARCH}" && exit 1 ;; esac && echo "Downloading subconverter ${SUBCONVERTER_VERSION} for $SUBCONVERTER_ARCH..." && wget -O /tmp/subconverter.tar.gz "https://github.com/tindy2013/subconverter/releases/download/${SUBCONVERTER_VERSION}/subconverter_${SUBCONVERTER_ARCH}.tar.gz" && tar -xzf /tmp/subconverter.tar.gz -C /app/tools && chmod +x /app/tools/subconverter/subconverter && rm -rf /tmp/* /var/tmp/* && echo "Subconverter ${SUBCONVERTER_VERSION} downloaded and installed" # buildkit
2026-08-13 04:00:02 UTC (buildkit.dockerfile.v0)COPY config/config.yaml.example /config/config.yaml.example # buildkit
2026-08-13 04:00:02 UTC (buildkit.dockerfile.v0)EXPOSE [7890/tcp 7891/tcp 9090/tcp]
2026-08-13 04:00:02 UTC (buildkit.dockerfile.v0)COPY scripts/*.sh /app/scripts/ # buildkit
2026-08-13 04:00:02 UTC (buildkit.dockerfile.v0)RUN |4 TARGETPLATFORM=linux/arm64 TARGETARCH=arm64 CACHEBUST=c882bd70d24d247cf4dec16f0e51ee37c0238e9e GEO_DAT_URL= /bin/sh -c chmod +x /app/scripts/*.sh # buildkit
2026-08-13 04:00:02 UTC (buildkit.dockerfile.v0)HEALTHCHECK {Test:[CMD /bin/sh /app/scripts/healthcheck.sh] Interval:30s Timeout:10s StartPeriod:10s StartInterval:0s Retries:3}
2026-08-13 04:00:02 UTC (buildkit.dockerfile.v0)ENTRYPOINT ["/app/scripts/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.