Skip to content

Image Variations and Manifest Lists

raymondmouthaan edited this page Oct 14, 2019 · 7 revisions

Node-RED Docker images come in different variations and are supported by manifest lists (auto-detect architecture). This makes it more easy to deploy in a multi architecture Docker environment. E.g. a Docker Swarm with mix of Raspberry Pi's and amd64 nodes. But also in a non-multi architecture Docker environment, there is no need to explicit add the tag for the architecture to use.

Tag Naming Convention

The naming convention of tags is

<node-red-version>-<node-version>-<image-type>-<architecture>, where:

  • <node-red-version> is the Node-RED version.
  • <node-version> is the Node JS version.
  • <image-type> is type of image and is optional, can be either none or minimal.
    • none : is the default and has Python 2 & Python 3 + devtools installed
    • minimal : has no Python installed and no devtools installed
  • <architecture> is the architecture of the Docker host system, can be either amd64, arm32v6, arm32v7, arm64.

The Node-RED images are based on official Node JS Alpine Linux images to keep them as small as possible. Using Alpine Linux reduces the built image size, but removes standard dependencies that are required for native module compilation. If you want to add dependencies with native dependencies, extend the Node-RED image with the missing packages on running containers or build new images see docker-custom.

All images have bash, tzdata, nano, curl git and openssl tools pre-installed to support Node-REDs Projects feature.

Image Variations

The following table shows the variation of provided Node-RED images.

Tag Node Arch Python Dev Base Image
1.0.2-10-amd64 10 amd64 2.x 3.x yes amd64/node:10-alpine
1.0.2-10-arm32v6 10 arm32v6 2.x 3.x yes arm32v6/node:10-alpine
1.0.2-10-arm32v7 10 arm32v7 2.x 3.x yes arm32v7/node:10-alpine
1.0.2-10-arm64v8 10 arm64v8 2.x 3.x yes arm64v8/node:10-alpine
1.0.2-10-minimal-amd64 10 amd64 no no amd64/node:10-alpine
1.0.2-10-minimal-arm32v6 10 arm32v6 no no arm32v6/node:10-alpine
1.0.2-10-minimal-arm32v7 10 arm32v7 no no arm32v7/node:10-alpine
1.0.2-10-minimal-arm64v8 10 arm64v8 no no arm64v8/node:10-alpine
Tag Node Arch Python Dev Base Image
1.0.2-12-amd64 12 amd64 2.x 3.x yes amd64/node:12-alpine
1.0.2-12-arm32v6 12 arm32v6 2.x 3.x yes arm32v6/node:12-alpine
1.0.2-12-arm32v7 12 arm32v7 2.x 3.x yes arm32v7/node:12-alpine
1.0.2-12-arm64v8 12 arm64v8 2.x 3.x yes arm64v8/node:12-alpine
1.0.2-12-minimal-amd64 12 amd64 no no amd64/node:12-alpine
1.0.2-12-minimal-arm32v6 12 arm32v6 no no arm32v6/node:12-alpine
1.0.2-12-minimal-arm32v7 12 arm32v7 no no arm32v7/node:12-alpine
1.0.2-12-minimal-arm64v8 12 arm64v8 no no arm64v8/node:12-alpine

Manifest Lists

With the support of Docker manifest list, there is no need to explicit add the tag for the architecture to use.

The following table shows the provided Manifest Lists.

Tag Node-RED Base Image
latest, 1.0.2, nodered/node-red:1.0-10-amd64
latest-10, 1.0.2-10 nodered/node-red:1.0-10-arm32v6
nodered/node-red:1.0-10-arm32v7
nodered/node-red:1.0-10-arm64v8
latest-minimal, 1.0.2-minimal, nodered/node-red:1.0-10-amd64-minimal
latest-10-minimal, 1.0.2-10-minimal nodered/node-red:1.0-10-arm32v6-minimal
nodered/node-red:1.0-10-arm32v7-minimal
nodered/node-red:1.0-10-arm64v8-minimal
Tag Node-RED Base Image
latest-12, 1.0.2-12 nodered/node-red:1.0-12-amd64
nodered/node-red:1.0-12-arm32v6
nodered/node-red:1.0-12-arm32v7
nodered/node-red:1.0-12-arm64v8
latest-12-minimal, 1.0-12-minimal nodered/node-red:1.0-12-amd64-minimal
nodered/node-red:1.0-12-arm32v6-minimal
nodered/node-red:1.0-12-arm32v7-minimal
nodered/node-red:1.0-12-arm64v8-minimal