# The console image built by Gitea CI (git.shx.one). Same contract as the upstream # init image: it copies the console into the volume mounted at /target and exits; # the official DNS server mounts that volume read-only and serves it. # # docker run --rm -v technitium-console:/target git.shx.one/denozord/technitium-console:latest # # Unlike docker/Dockerfile (which packs a release tarball), this one builds the # console from the sources in the context. FROM node:22-bookworm-slim AS build WORKDIR /src COPY package.json package-lock.json ./ RUN npm ci COPY . . RUN npm run build FROM busybox:stable COPY --from=build /src/dist /console # Everything the console ships is replaced on each run, except the administrator's # own lists (json/*-custom.json), which live in the same folder. ENTRYPOINT ["/bin/sh", "-c", "test -d /target || { echo 'mount a volume at /target' >&2; exit 1; }; find /target -depth -mindepth 1 ! -name '*-custom.json' -delete 2>/dev/null; cp -a /console/. /target/"]