Namespace
apache
Image / Tag
skywalking-ui:latest
Content Digest
sha256:bc0fae785f4f1c41ab8ceca47126fa4fddf9f7361a05dd6f258e38cbc7ee0736
Details
Created

2026-10-07 00:07:59 UTC

Size

99.6 MB

Content Digest
Labels
  • org.opencontainers.image.description
    Next-generation web UI for Apache SkyWalking.
  • org.opencontainers.image.licenses
    Apache-2.0
  • org.opencontainers.image.revision
    b153b4e0b624a03b7d8b45f3157db28c25644162
  • org.opencontainers.image.source
    https://github.com/apache/skywalking-horizon-ui
  • org.opencontainers.image.title
    Apache SkyWalking Horizon UI

Environment
HORIZON_CONFIG

/app/horizon.yaml

HORIZON_SERVER_HOST

0.0.0.0

HORIZON_SERVER_PORT

8081

HORIZON_SOURCEMAPS_DIR

/app/sourcemaps

HORIZON_STATIC_DIR

/app/static

HORIZON_WIRE_LOG_FILE

/data/horizon-wire.jsonl

NODE_ENV

production

NODE_OPTIONS

--max-old-space-size=768

NODE_VERSION

24.21.0

PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

YARN_VERSION

1.22.22


Layers

[#000] sha256:e2de96513ba9eb53b431787ec8a65cdde380ac4772a3e4c4b714dcfde2a102b5 - 3.68% (3.67 MB)

[#001] sha256:3c504d5a797be28f9de43147d49cd8ecb2eea46dfaf7beb8715db695d5f0a7f0 - 54.09% (53.9 MB)

[#002] sha256:02f40d53b06f6b91fec0cd6a6719656da99270bff8ee54ed8dcdf4c157763fc1 - 1.21% (1.2 MB)

[#003] sha256:7ce7dcbafb7f750cf0c6be3c30e34372b06dd1182fa67f6ae30782c8150c5444 - 0.0% (444 Bytes)

[#004] sha256:6705243cb8faba56384752e65b9af03027aba2c73215ef1b824f5a9c44011cc8 - 0.0% (93 Bytes)

[#005] sha256:20d519845bd8feafe949b9d4c4627bd261ff12d0ed97add1b3dd22dc38d02d4d - 0.0% (340 Bytes)

[#006] sha256:f317c5a8256c0f810a7475bb3472e5f9929ba2ca0c1e296f627cf305c053c4f9 - 0.0% (973 Bytes)

[#007] sha256:8ea838af55235dda99760759978f3b0d2722a39c54eac5e2f6aabe04778916da - 0.2% (201 KB)

[#008] sha256:251b3fc2358a6e618c320574d14356bbe693a0265e7c9cdf9395086128fe6509 - 0.0% (972 Bytes)

[#009] sha256:c82ba71dd2e05baa2e2182b7a62545bf42868e87affa36c70a3932afcc60266d - 30.71% (30.6 MB)

[#010] sha256:c69a8bcb8edae96e38c812dabc99c59866e1caae3525e064a0bef351d20811a6 - 8.6% (8.57 MB)

[#011] sha256:a8b9b9266afd1aec709caee17773022dfb6cc6e56b6e91abb98dd1d42ddd6e1f - 0.01% (8.55 KB)

[#012] sha256:55eafb29817008130bc8d7a5ee21d8ceb73b9211d652091a5aa329d8695f5482 - 0.2% (201 KB)

[#013] sha256:9d6cca5de0261d05c3bc198bbf87e5536cbd73b90ce595a2983dbb77a5a4626d - 0.04% (38.8 KB)

[#014] sha256:57b0c67268f6662ac5c197fcb217efa3bf76c942577996faa17b695718aa5bdc - 1.26% (1.26 MB)

[#015] sha256:49a12ddac7d2013ce2e2a3dd8567fdef3518bcf50fae6f745bc300642c9d376b - 0.0% (98 Bytes)

[#016] sha256:da51981ba9f765282e3ae4027842f24afb3361cc4ec6f866f56fc2ab20497c84 - 0.0% (126 Bytes)


History
2026-09-17 20:37:20 UTC (buildkit.dockerfile.v0)

ADD alpine-minirootfs-3.24.2-x86_64.tar.gz / # buildkit

2026-09-17 20:37:20 UTC (buildkit.dockerfile.v0)

CMD ["/bin/sh"]

2026-09-17 21:47:23 UTC (buildkit.dockerfile.v0)

ENV NODE_VERSION=24.21.0

2026-09-17 21:47:23 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 libstdc++ && apk add --no-cache --virtual .build-deps curl && ARCH= OPENSSL_ARCH='linux*' && alpineArch="$(apk --print-arch)" && case "${alpineArch##*-}" in x86_64) ARCH='x64' CHECKSUM="dd5ca647e656c8200c873f45098a16623129c47f2387829f0a15a6de1dac1220" OPENSSL_ARCH=linux-x86_64;; aarch64) OPENSSL_ARCH=linux-aarch64;; s390x) OPENSSL_ARCH=linux-s390x;; *) echo "unsupported architecture"; exit 1 ;; esac && if [ -n "${CHECKSUM}" ]; then set -eu; curl -fsSLO --compressed "https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz"; echo "$CHECKSUM node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" | sha256sum -c - && tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner && 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 gnupg libgcc linux-headers make python3 py-setuptools && 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.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 && rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" && 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-09-17 21:47:23 UTC (buildkit.dockerfile.v0)

ENV YARN_VERSION=1.22.22

2026-09-17 21:47:27 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-09-17 21:47:27 UTC (buildkit.dockerfile.v0)

COPY docker-entrypoint.sh /usr/local/bin/ # buildkit

2026-09-17 21:47:27 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["docker-entrypoint.sh"]

2026-09-17 21:47:27 UTC (buildkit.dockerfile.v0)

CMD ["node"]

2026-10-07 00:06:15 UTC (buildkit.dockerfile.v0)

WORKDIR /app

2026-10-07 00:06:16 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c rm -rf /usr/local/lib/node_modules/npm /usr/local/lib/node_modules/corepack /opt/yarn-* && rm -f /usr/local/bin/npm /usr/local/bin/npx /usr/local/bin/corepack /usr/local/bin/yarn /usr/local/bin/yarnpkg && node --version && ! command -v npm && ! command -v npx && ! command -v corepack && ! command -v yarn # buildkit

2026-10-07 00:06:16 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c addgroup -S horizon && adduser -S -G horizon horizon # buildkit

2026-10-07 00:07:54 UTC (buildkit.dockerfile.v0)

COPY /src/dist/server.js ./server.js # buildkit

2026-10-07 00:07:54 UTC (buildkit.dockerfile.v0)

COPY /src/dist/package.json ./package.json # buildkit

2026-10-07 00:07:58 UTC (buildkit.dockerfile.v0)

COPY /src/dist/node_modules ./node_modules # buildkit

2026-10-07 00:07:58 UTC (buildkit.dockerfile.v0)

COPY /src/dist/static ./static # buildkit

2026-10-07 00:07:58 UTC (buildkit.dockerfile.v0)

COPY /src/dist/horizon.yaml ./horizon.yaml # buildkit

2026-10-07 00:07:59 UTC (buildkit.dockerfile.v0)

COPY --chown=horizon:horizon /src/dist/bundled_templates ./bundled_templates # buildkit

2026-10-07 00:07:59 UTC (buildkit.dockerfile.v0)

COPY --chown=horizon:horizon /src/dist/skills ./skills # buildkit

2026-10-07 00:07:59 UTC (buildkit.dockerfile.v0)

COPY --chown=horizon:horizon /src/dist/mcp-app ./mcp-app # buildkit

2026-10-07 00:07:59 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c mkdir -p /data && chown horizon:horizon /data # buildkit

2026-10-07 00:07:59 UTC (buildkit.dockerfile.v0)

VOLUME [/data]

2026-10-07 00:07:59 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c mkdir -p /app/sourcemaps && chown horizon:horizon /app/sourcemaps # buildkit

2026-10-07 00:07:59 UTC (buildkit.dockerfile.v0)

ENV NODE_ENV=production HORIZON_SERVER_HOST=0.0.0.0 HORIZON_SERVER_PORT=8081 HORIZON_STATIC_DIR=/app/static HORIZON_CONFIG=/app/horizon.yaml HORIZON_WIRE_LOG_FILE=/data/horizon-wire.jsonl HORIZON_SOURCEMAPS_DIR=/app/sourcemaps NODE_OPTIONS=--max-old-space-size=768

2026-10-07 00:07:59 UTC (buildkit.dockerfile.v0)

USER horizon

2026-10-07 00:07:59 UTC (buildkit.dockerfile.v0)

EXPOSE [8081/tcp]

2026-10-07 00:07:59 UTC (buildkit.dockerfile.v0)

CMD ["node" "server.js"]

Details
Created

2026-10-07 00:07:35 UTC

Size

100 MB

Content Digest
Labels
  • org.opencontainers.image.description
    Next-generation web UI for Apache SkyWalking.
  • org.opencontainers.image.licenses
    Apache-2.0
  • org.opencontainers.image.revision
    b153b4e0b624a03b7d8b45f3157db28c25644162
  • org.opencontainers.image.source
    https://github.com/apache/skywalking-horizon-ui
  • org.opencontainers.image.title
    Apache SkyWalking Horizon UI

Environment
HORIZON_CONFIG

/app/horizon.yaml

HORIZON_SERVER_HOST

0.0.0.0

HORIZON_SERVER_PORT

8081

HORIZON_SOURCEMAPS_DIR

/app/sourcemaps

HORIZON_STATIC_DIR

/app/static

HORIZON_WIRE_LOG_FILE

/data/horizon-wire.jsonl

NODE_ENV

production

NODE_OPTIONS

--max-old-space-size=768

NODE_VERSION

24.21.0

PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

YARN_VERSION

1.22.22


Layers

[#000] sha256:a9986cd6f37dbddae7862a6d4be71683472e7c2ea708e87db14f8a6393c00f00 - 3.99% (3.99 MB)

[#001] sha256:6680b19ad074d7cbe6bf0eb4013d64483980d5cc93bf6774d7effd8bb196df0c - 53.96% (54 MB)

[#002] sha256:d4a23e25aa718dc5c16fb5935f8683eff024fd67902ef1a4929a42da78d4e9d6 - 1.2% (1.2 MB)

[#003] sha256:e2f4a003057d235ec28208b606f2f9524400c06882b1ffa1c89ceda8213f5fb4 - 0.0% (444 Bytes)

[#004] sha256:82feeb1a062dc67c31dc2195211907d5b09bae89ae782e9412c68d9a2303d128 - 0.0% (92 Bytes)

[#005] sha256:6c939b2396a77cd32882c0e14598aee030cfb17586bc85713b815ad022e1b7d4 - 0.0% (343 Bytes)

[#006] sha256:ac6520745a36fde26735a7e090e356b93a43c381225a9da307cbd8ff1aa7adea - 0.0% (973 Bytes)

[#007] sha256:c8d5245bdfd08dfabe15b04dd8bab5ebb4141702666c390aeaf2bd714849f693 - 0.2% (201 KB)

[#008] sha256:b3994bbdd02154938514fbf30c75897871ee27d945963690532aee8b768b90e0 - 0.0% (973 Bytes)

[#009] sha256:4f4ae9f260329d93b65e5bc3bae71334f84cb61618c013d0bdac5c21cb0dcd70 - 30.59% (30.6 MB)

[#010] sha256:dec17328910fc710fe9006f8a8f2cfe6f0588906097957278935e2e81ce2eea0 - 8.56% (8.57 MB)

[#011] sha256:0b18ff5eac4cbe9edc6cb6cd8632fbb2809ba97ebf8b14de21554a4880e0349f - 0.01% (8.55 KB)

[#012] sha256:4e4a7318429e1582ac9f512941b0901fc0ea7d5620a6d230f9f26b957fd6eea0 - 0.2% (201 KB)

[#013] sha256:6810f226d41a3d0889817c5e99799eb2b0d30b92fb6fe13a27718ea0531e5044 - 0.04% (38.8 KB)

[#014] sha256:172a046df961cc7dcbfc84609dcc0706e97a825172e09508b3d1a28cba88feb8 - 1.26% (1.26 MB)

[#015] sha256:30410378b6bf137489739f0aec4d60986f683c3bffd395ce14e3d6bcf11f302a - 0.0% (98 Bytes)

[#016] sha256:1a3090f59a4ff888f77580d8445e80e077d2e631523815d204f687571bc46fca - 0.0% (126 Bytes)


History
2026-09-17 20:37:05 UTC (buildkit.dockerfile.v0)

ADD alpine-minirootfs-3.24.2-aarch64.tar.gz / # buildkit

2026-09-17 20:37:05 UTC (buildkit.dockerfile.v0)

CMD ["/bin/sh"]

2026-09-17 22:27:02 UTC (buildkit.dockerfile.v0)

ENV NODE_VERSION=24.21.0

2026-09-17 22:27:02 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 libstdc++ && apk add --no-cache --virtual .build-deps curl && ARCH= OPENSSL_ARCH='linux*' && alpineArch="$(apk --print-arch)" && case "${alpineArch##*-}" in x86_64) ARCH='x64' CHECKSUM="dd5ca647e656c8200c873f45098a16623129c47f2387829f0a15a6de1dac1220" OPENSSL_ARCH=linux-x86_64;; aarch64) OPENSSL_ARCH=linux-aarch64;; s390x) OPENSSL_ARCH=linux-s390x;; *) echo "unsupported architecture"; exit 1 ;; esac && if [ -n "${CHECKSUM}" ]; then set -eu; curl -fsSLO --compressed "https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz"; echo "$CHECKSUM node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" | sha256sum -c - && tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner && 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 gnupg libgcc linux-headers make python3 py-setuptools && 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.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 && rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" && 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-09-17 22:27:02 UTC (buildkit.dockerfile.v0)

ENV YARN_VERSION=1.22.22

2026-09-17 22:27:06 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-09-17 22:27:06 UTC (buildkit.dockerfile.v0)

COPY docker-entrypoint.sh /usr/local/bin/ # buildkit

2026-09-17 22:27:06 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["docker-entrypoint.sh"]

2026-09-17 22:27:06 UTC (buildkit.dockerfile.v0)

CMD ["node"]

2026-10-07 00:06:12 UTC (buildkit.dockerfile.v0)

WORKDIR /app

2026-10-07 00:06:12 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c rm -rf /usr/local/lib/node_modules/npm /usr/local/lib/node_modules/corepack /opt/yarn-* && rm -f /usr/local/bin/npm /usr/local/bin/npx /usr/local/bin/corepack /usr/local/bin/yarn /usr/local/bin/yarnpkg && node --version && ! command -v npm && ! command -v npx && ! command -v corepack && ! command -v yarn # buildkit

2026-10-07 00:06:12 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c addgroup -S horizon && adduser -S -G horizon horizon # buildkit

2026-10-07 00:07:33 UTC (buildkit.dockerfile.v0)

COPY /src/dist/server.js ./server.js # buildkit

2026-10-07 00:07:33 UTC (buildkit.dockerfile.v0)

COPY /src/dist/package.json ./package.json # buildkit

2026-10-07 00:07:34 UTC (buildkit.dockerfile.v0)

COPY /src/dist/node_modules ./node_modules # buildkit

2026-10-07 00:07:35 UTC (buildkit.dockerfile.v0)

COPY /src/dist/static ./static # buildkit

2026-10-07 00:07:35 UTC (buildkit.dockerfile.v0)

COPY /src/dist/horizon.yaml ./horizon.yaml # buildkit

2026-10-07 00:07:35 UTC (buildkit.dockerfile.v0)

COPY --chown=horizon:horizon /src/dist/bundled_templates ./bundled_templates # buildkit

2026-10-07 00:07:35 UTC (buildkit.dockerfile.v0)

COPY --chown=horizon:horizon /src/dist/skills ./skills # buildkit

2026-10-07 00:07:35 UTC (buildkit.dockerfile.v0)

COPY --chown=horizon:horizon /src/dist/mcp-app ./mcp-app # buildkit

2026-10-07 00:07:35 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c mkdir -p /data && chown horizon:horizon /data # buildkit

2026-10-07 00:07:35 UTC (buildkit.dockerfile.v0)

VOLUME [/data]

2026-10-07 00:07:35 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c mkdir -p /app/sourcemaps && chown horizon:horizon /app/sourcemaps # buildkit

2026-10-07 00:07:35 UTC (buildkit.dockerfile.v0)

ENV NODE_ENV=production HORIZON_SERVER_HOST=0.0.0.0 HORIZON_SERVER_PORT=8081 HORIZON_STATIC_DIR=/app/static HORIZON_CONFIG=/app/horizon.yaml HORIZON_WIRE_LOG_FILE=/data/horizon-wire.jsonl HORIZON_SOURCEMAPS_DIR=/app/sourcemaps NODE_OPTIONS=--max-old-space-size=768

2026-10-07 00:07:35 UTC (buildkit.dockerfile.v0)

USER horizon

2026-10-07 00:07:35 UTC (buildkit.dockerfile.v0)

EXPOSE [8081/tcp]

2026-10-07 00:07:35 UTC (buildkit.dockerfile.v0)

CMD ["node" "server.js"]

Danger Zone
Delete Tag

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.

Delete