Same capability as runtime-image with English content, so installers can pick the language variant via the skill-selection step.
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 prefixlivebook: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'sMQL4/Experts,MQL4/Indicatorsand 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).