# A Vectrum runner in a container: Node.js, Bun, git and the usual build tools. # # docker build -f Dockerfile.runner -t vectrum-runner . # docker run -d -e VECTRUM_URL=https://vectrum.example -e VECTRUM_RUNNER_TOKEN=vrn_… vectrum-runner # # Steps run as the unprivileged node user, inside this container only (no Docker socket). FROM node:24-bookworm COPY --from=oven/bun:1.4.2 /usr/local/bin/bun /usr/local/bin/bun RUN ln -s /usr/local/bin/bun /usr/local/bin/bunx \ && apt-get update && apt-get install -y --no-install-recommends tini && rm -rf /var/lib/apt/lists/* WORKDIR /runner COPY --chown=node:node public/vectrum-runner.mjs ./ RUN mkdir _work && chown node:node _work USER node ENV VECTRUM_WORK_DIR=/runner/_work ENTRYPOINT ["/usr/bin/tini", "--"] CMD ["node", "vectrum-runner.mjs"]