Files
skills/skills/runtime-image-en/references/runtime-matrix.md
T
sunjunzhao abb2f69157 feat: add runtime-image-en (English version)
Same capability as runtime-image with English content, so installers
can pick the language variant via the skill-selection step.
2026-09-27 19:21:25 +08:00

4.1 KiB

runtime-base image matrix details (excerpted from the runtime-base repo README, 2026-09 edition)

Read on demand: consult this file when Step 1 leaves you unsure about preinstalled content or environment variables. Full image name: $INNEV_IMAGE_PREFIX/runtime-<name>:<tag>, default prefix livebook:8418/images/.

Linux side (all Alpine, linux/amd64 + linux/arm64 dual-arch)

Image Base Preinstalled
runtime-base alpine:3.22 bash/git/curl/jq/make/CA certs/UTC+8 timezone; the runtime foundation for Go/Rust static binaries and scripts
runtime-node node:24-alpine Node backend: pnpm install + build at startup, launched with node $APP_ENTRY
runtime-pm2 node:24-alpine same + pm2: pm2-runtime cluster startup
runtime-python python:3.13-alpine pip/setuptools/wheel + uv/pipx/virtualenv (no source compile chain — packages without musl wheels are compiled in the build stage)
runtime-dotnet dotnet/aspnet:10.0-alpine ASP.NET Core runtime, no SDK
runtime-cpp alpine:3.22 libstdc++/libgcc runtime libraries (musl dynamically linked artifacts only)
runtime-java temurin:21-jre-alpine JRE 21 LTS, no JDK/Maven/Gradle

The Node family (node/pm2) additionally preinstalls: pnpm/yarn (versions controllable via ARG PNPM_VERSION/YARN_VERSION), python3/make/g++ (the node-gyp compile chain) — because they run pnpm install at container start, and native modules compile at install time right there.

Windows side (Linux containers + Wine, x86_64 only)

Image Base Preinstalled
runtime-wine-base debian:bookworm-slim Wine (win32+win64) + winetricks + Xvfb + CJK fonts + pre-initialized wine prefix /opt/wineprefix
runtime-wine-dotnet runtime-wine-base .NET Framework 4.8 preinstalled (ARG DOTNET_FX switches the verb)
runtime-mt4 runtime-wine-base MetaTrader 4 + corefonts preinstalled, Xvfb headless startup

Why Wine instead of Windows containers: Windows containers require a Windows Server host — high maintenance cost; .NET Framework 4.x and MT4 are mature and stable under Wine. Debian as base rather than Alpine: musl Wine has incomplete 32-bit (wow64) support.

Node-family environment variables (inject at docker run, never bake into layers)

Variable Purpose Default
NPM_REGISTRY npm registry address (including private ones) official registry
NPM_TOKEN private registry token (via env it ends up in docker inspect; not recommended) none
NPM_TOKEN_FILE token file path (docker secret / k8s mounted volume; recommended, takes precedence over NPM_TOKEN) none
APP_DIR app directory /app
BUILD_CMD build script name (auto-skipped if absent from package.json) build
APP_ENTRY build artifact entry file dist/main.js
PM2_APP_NAME [pm2] app name app
PM2_INSTANCES [pm2] cluster instance count max (core count)

Common CMD / COPY patterns

  • Go: COPY app /usr/local/bin/app + CMD ["app"]
  • Java: COPY target/app.jar /app/app.jar + CMD ["java","-jar","/app/app.jar"]
  • .NET: COPY out /app + CMD ["dotnet","/app/MyService.dll"]
  • wine-dotnet: COPY bin/Release/ "$WINEPREFIX/drive_c/app/" + CMD ["xvfb-run","-a","wine","C:\\app\\MyService.exe"]
  • MT4: no COPY; docker run -v /srv/mt4/data:/opt/wineprefix/drive_c/"Program Files (x86)"/"MetaTrader 4"; drop EAs/indicators into the data directory's MQL4/Experts, MQL4/Indicators and restart the container

Pre-step: host registration on the pulling side (manual)

Add { "insecure-registries": ["livebook:8418"] } to /etc/docker/daemon.json and restart docker (the internal registry uses plain HTTP on the LAN).

Tag policy

latest (rolling rebuild with upstream every Monday 02:30 Beijing time) / short-sha / version tag (v*). Production pins a version tag or short sha.

Package-manager mirrors for China

Each runtime Dockerfile has comments showing how to enable them; you can also configure them in the project's build-stage Dockerfile (the README provides ready-made snippets for crates.io rsproxy and Maven aliyun).