Files
grabowski 00ddaeba13 kicad10_auto_node: KiBot KiCad 10 image with Node.js for Gitea Actions
Base ghcr.io/inti-cmnb/kicad10_auto_full:1.9.1-1_k10.0.5 (KiBot 1.9.1,
KiCad 10.0.5) plus Node.js 24.22.0 LTS from nodejs.org (SHA-256 checked).
act_runner runs JavaScript actions inside the job container; the KiBot
images have no Node. build.sh builds, tests and pushes
git.b4l.co.th/b4l/kicad10_auto_node:latest and a versioned tag.
2026-10-15 16:25:47 +07:00

37 lines
1.6 KiB
Docker

# KiBot's KiCad 10 image plus Node.js, for Gitea Actions.
#
# act_runner runs JavaScript actions (actions/checkout, upload-artifact) inside
# the job container, and the KiBot images have no Node. The runner label is
# kicad10_auto:docker://git.b4l.co.th/b4l/kicad10_auto_node:latest
# so a runner without the image pulls it, instead of every job installing Node.
#
# Build and push with ../build.sh (see ../README.md).
ARG BASE=ghcr.io/inti-cmnb/kicad10_auto_full:1.9.1-1_k10.0.5_d13.2_b4.2.4LTS
FROM ${BASE}
ARG BASE
ARG NODE_VERSION=24.22.0
# Extra global npm packages, space separated (none by default).
ARG NPM_GLOBAL=""
# Node.js from nodejs.org, checked against the release's SHA-256 list.
# The base image has no xz, so use the .tar.gz build.
RUN set -eux; \
file="node-v${NODE_VERSION}-linux-x64.tar.gz"; \
cd /tmp; \
curl -fsSLO "https://nodejs.org/dist/v${NODE_VERSION}/${file}"; \
curl -fsSLO "https://nodejs.org/dist/v${NODE_VERSION}/SHASUMS256.txt"; \
grep " ${file}\$" SHASUMS256.txt | sha256sum -c -; \
tar -xzf "${file}" -C /usr/local --strip-components=1 --no-same-owner \
--exclude='*/CHANGELOG.md' --exclude='*/README.md' --exclude='*/LICENSE'; \
rm -f "${file}" SHASUMS256.txt; \
if [ -n "${NPM_GLOBAL}" ]; then npm install -g --no-fund --no-audit ${NPM_GLOBAL}; fi; \
npm cache clean --force; \
node --version; npm --version
LABEL org.opencontainers.image.title="kicad10_auto_node" \
org.opencontainers.image.description="KiBot KiCad 10 image with Node.js for Gitea Actions" \
org.opencontainers.image.source="https://git.b4l.co.th/B4L/ci-images" \
org.opencontainers.image.base.name="${BASE}"