Skip to content

Commit

Permalink
Updates for NR 3.0.0 release (#311)
Browse files Browse the repository at this point in the history
* Updates for 3.0.0

 - Bump the base Alpine build back to latest
 - Set NodeJS 16 as default
 - Drop NodeJS 12
 - Add NodeJS 18

* Finish updating README.md

* Update default versions in custom build scripts

* Add 3.0.0-beta.1
  • Loading branch information
hardillb authored May 3, 2022
1 parent 7679ad1 commit 79b0539
Show file tree
Hide file tree
Showing 9 changed files with 64 additions and 64 deletions.
4 changes: 2 additions & 2 deletions .docker/Dockerfile.alpine
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
ARG NODE_VERSION=14
ARG OS=alpine3.12
ARG NODE_VERSION=16
ARG OS=alpine

#### Stage BASE ########################################################################################################
FROM node:${NODE_VERSION}-${OS} AS base
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@ jobs:
build:
env:
# Setting the defaults up front
LATEST_NODE: 14
LATEST_NODE: 16
DEFAULT_IMAGE: nodered/node-red
DEV_IMAGE: nodered/node-red-dev
runs-on: ubuntu-latest

strategy:
matrix:
node: [12, 14, 16]
node: [14, 16, 18]
suffix: ["", "-minimal"]

# Steps represent a sequence of tasks that will be executed as part of the job
Expand Down
100 changes: 50 additions & 50 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,16 @@ Let's dissect that command:
-p 1880:1880 - connect local port 1880 to the exposed internal port 1880
-v node_red_data:/data - mount the host node_red_data directory to the container /data directory so any changes made to flows are persisted
--name mynodered - give this machine a friendly local name
nodered/node-red - the image to base it on - currently Node-RED v2.1.5
nodered/node-red - the image to base it on - currently Node-RED v3.0.0


Running that command should give a terminal window with a running instance of Node-RED.

Welcome to Node-RED
===================

10 Oct 12:57:10 - [info] Node-RED version: v2.1.5
10 Oct 12:57:10 - [info] Node.js version: v14.18.2
10 Oct 12:57:10 - [info] Node-RED version: v3.0.0
10 Oct 12:57:10 - [info] Node.js version: v16.14.1
10 Oct 12:57:10 - [info] Linux 4.19.76-linuxkit x64 LE
10 Oct 12:57:11 - [info] Loading palette nodes
10 Oct 12:57:16 - [info] Settings file : /data/settings.js
Expand Down Expand Up @@ -114,51 +114,51 @@ The following table shows the variety of provided Node-RED images.

| **Tag** |**Node**| **Arch** | **Python** |**Dev**| **Base Image** |
|----------------------------|--------|----------|------------|-------|----------------------------|
| 2.1.5-12 | 12 | amd64 | 2.x 3.x | yes | amd64/node:12-alpine3.12 |
| | 12 | arm32v6 | 2.x 3.x | yes | arm32v6/node:12-alpine3.12 |
| | 12 | arm32v7 | 2.x 3.x | yes | arm32v7/node:12-alpine3.12 |
| | 12 | arm64v8 | 2.x 3.x | yes | arm64v8/node:12-alpine3.12 |
| | 12 | s390x | 2.x 3.x | yes | s390x/node:12-alpine3.12 |
| | 12 | i386 | 2.x 3.x | yes | i386/node:12-alpine3.12 |
| 3.0.0-14 | 14 | amd64 | 2.x 3.x | yes | amd64/node:14-alpine |
| | 14 | arm32v6 | 2.x 3.x | yes | arm32v6/node:14-alpine |
| | 14 | arm32v7 | 2.x 3.x | yes | arm32v7/node:14-alpine |
| | 14 | arm64v8 | 2.x 3.x | yes | arm64v8/node:14-alpine |
| | 14 | s390x | 2.x 3.x | yes | s390x/node:14-alpine |
| | 14 | i386 | 2.x 3.x | yes | i386/node:14-alpine |
| | | | | | |
| 2.1.5-12-minimal | 12 | amd64 | no | no | amd64/node:12-alpine3.12 |
| | 12 | arm32v6 | no | no | arm32v6/node:12-alpine3.12 |
| | 12 | arm32v7 | no | no | arm32v7/node:12-alpine3.12 |
| | 12 | arm64v8 | no | no | arm64v8/node:12-alpine3.12 |
| | 12 | s390x | no | no | s390x/node:12-alpine3.12 |
| | 12 | i386 | no | no | i386/node:12-alpine3.12 |
| 3.0.0-14-minimal | 14 | amd64 | no | no | amd64/node:14-alpine |
| | 14 | arm32v6 | no | no | arm32v6/node:14-alpine |
| | 14 | arm32v7 | no | no | arm32v7/node:14-alpine |
| | 14 | arm64v8 | no | no | arm64v8/node:14-alpine |
| | 14 | s390x | no | no | s390x/node:14-alpine |
| | 14 | i386 | no | no | i386/node:14-alpine |

| **Tag** |**Node**| **Arch** | **Python** |**Dev**| **Base Image** |
|----------------------------|--------|----------|------------|-------|----------------------------|
| 2.1.5-14 | 14 | amd64 | 2.x 3.x | yes | amd64/node:14-alpine3.12 |
| | 14 | arm32v6 | 2.x 3.x | yes | arm32v6/node:14-alpine3.12 |
| | 14 | arm32v7 | 2.x 3.x | yes | arm32v7/node:14-alpine3.12 |
| | 14 | arm64v8 | 2.x 3.x | yes | arm64v8/node:14-alpine3.12 |
| | 14 | s390x | 2.x 3.x | yes | s390x/node:14-alpine3.12 |
| | 14 | i386 | 2.x 3.x | yes | i386/node:14-alpine3.12 |
| 3.0.0-16 | 14 | amd64 | 2.x 3.x | yes | amd64/node:16-alpine |
| | 14 | arm32v6 | 2.x 3.x | yes | arm32v6/node:16-alpine |
| | 14 | arm32v7 | 2.x 3.x | yes | arm32v7/node:16-alpine |
| | 14 | arm64v8 | 2.x 3.x | yes | arm64v8/node:16-alpine |
| | 14 | s390x | 2.x 3.x | yes | s390x/node:16-alpine |
| | 14 | i386 | 2.x 3.x | yes | i386/node:16-alpine |
| | | | | | |
| 2.1.5-14-minimal | 14 | amd64 | no | no | amd64/node:14-alpine3.12 |
| | 14 | arm32v6 | no | no | arm32v6/node:14-alpine3.12 |
| | 14 | arm32v7 | no | no | arm32v7/node:14-alpine3.12 |
| | 14 | arm64v8 | no | no | arm64v8/node:14-alpine3.12 |
| | 14 | s390x | no | no | s390x/node:14-alpine3.12 |
| | 14 | i386 | no | no | i386/node:14-alpine3.12 |
| 3.0.0-16-minimal | 14 | amd64 | no | no | amd64/node:14-alpine |
| | 14 | arm32v6 | no | no | arm32v6/node:14-alpine |
| | 14 | arm32v7 | no | no | arm32v7/node:14-alpine |
| | 14 | arm64v8 | no | no | arm64v8/node:14-alpine |
| | 14 | s390x | no | no | s390x/node:14-alpine |
| | 14 | i386 | no | no | i386/node:14-alpine |

| **Tag** |**Node**| **Arch** | **Python** |**Dev**| **Base Image** |
|----------------------------|--------|----------|------------|-------|----------------------------|
| 2.1.5-16 | 16 | amd64 | 2.x 3.x | yes | amd64/node:16-alpine3.12 |
| | 16 | arm32v6 | 2.x 3.x | yes | arm32v6/node:16-alpine3.12 |
| | 16 | arm32v7 | 2.x 3.x | yes | arm32v7/node:16-alpine3.12 |
| | 16 | arm64v8 | 2.x 3.x | yes | arm64v8/node:16-alpine3.12 |
| | 16 | s390x | 2.x 3.x | yes | s390x/node:16-alpine3.12 |
| | 16 | i386 | 2.x 3.x | yes | i386/node:16-alpine3.12 |
| 3.0.0-18 | 18 | amd64 | 2.x 3.x | yes | amd64/node:18-alpine |
| | 18 | arm32v6 | 2.x 3.x | yes | arm32v6/node:18-alpine |
| | 18 | arm32v7 | 2.x 3.x | yes | arm32v7/node:18-alpine |
| | 18 | arm64v8 | 2.x 3.x | yes | arm64v8/node:18-alpine |
| | 18 | s390x | 2.x 3.x | yes | s390x/node:18-alpine |
| | 18 | i386 | 2.x 3.x | yes | i386/node:18-alpine |
| | | | | | |
| 2.1.5-16-minimal | 16 | amd64 | no | no | amd64/node:16-alpine3.12 |
| | 16 | arm32v6 | no | no | arm32v6/node:16-alpine3.12 |
| | 16 | arm32v7 | no | no | arm32v7/node:16-alpine3.12 |
| | 16 | arm64v8 | no | no | arm64v8/node:16-alpine3.12 |
| | 16 | s390x | no | no | s390x/node:16-alpine3.12 |
| | 16 | i386 | no | no | i386/node:16-alpine3.12 |
| 3.0.0-18-minimal | 18 | amd64 | no | no | amd64/node:18-alpine |
| | 18 | arm32v6 | no | no | arm32v6/node:18-alpine |
| | 18 | arm32v7 | no | no | arm32v7/node:18-alpine |
| | 18 | arm64v8 | no | no | arm64v8/node:18-alpine |
| | 18 | s390x | no | no | s390x/node:18-alpine |
| | 18 | i386 | no | no | i386/node:18-alpine |

- All images have bash, tzdata, nano, curl, git, openssl and openssh-client pre-installed to support Node-RED's Projects feature.

Expand All @@ -167,25 +167,25 @@ The following table shows the provided Manifest Lists.

| **Tag** | **Node-RED Base Image** |
|----------------------------------------|--------------------------------------------|
| latest, 2.1.5, | nodered/node-red:2.1.5-14 |
| latest-14, 2.1.5-14 | |
| latest, 3.0.0, | nodered/node-red:3.0.0-16 |
| latest-16, 3.0.0-16 | |
| | |
| | |
| latest-minimal, 2.1.5-minimal, | nodered/node-red:2.1.5-14-minimal |
| latest-14-minimal, 2.1.5-14-minimal | |
| latest-minimal, 3.0.0-minimal, | nodered/node-red:3.0.0-16-minimal |
| latest-16-minimal, 3.0.0-16-minimal | |


| **Tag** | **Node-RED Base Image** |
|----------------------------------------|--------------------------------------------|
| latest-12, 2.1.5-12 | nodered/node-red:2.1.5-12 |
| latest-14, 3.0.0-14 | nodered/node-red:3.0.0-12 |
| | |
| latest-12-minimal, 2.1.5-12-minimal | nodered/node-red:2.1.5-12-minimal |
| latest-14-minimal, 3.0.0-14-minimal | nodered/node-red:3.0.0-12-minimal |

| **Tag** | **Node-RED Base Image** |
|----------------------------------------|--------------------------------------------|
| latest-16, 2.1.5-16 | nodered/node-red:2.1.5-16 |
| latest-18, 3.0.0-18 | nodered/node-red:3.0.0-18 |
| | |
| latest-16-minimal, 2.1.5-16-minimal | nodered/node-red:2.1.5-16-minimal |
| latest-18-minimal, 3.0.0-18-minimal | nodered/node-red:3.0.0-18-minimal |



Expand All @@ -194,12 +194,12 @@ When a docker run command or docker service command or docker stack command is e

Therefore all tags regarding Raspberry PI's are dropped.

For example: suppose you are running on a Raspberry PI 3B, which has `arm32v7` as architecture. Then just run the following command to pull the image (tagged by `2.1.5-14`), and run the container.
For example: suppose you are running on a Raspberry PI 3B, which has `arm32v7` as architecture. Then just run the following command to pull the image (tagged by `3.0.0-16`), and run the container.
```
docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red:latest
```

The same command can be used for running on an amd64 system, since docker discovers its running on a amd64 host and pulls the image with the matching tag (`2.1.5-13-amd64`).
The same command can be used for running on an amd64 system, since docker discovers its running on a amd64 host and pulls the image with the matching tag (`3.0.0-16-amd64`).

This gives the advantage that you don't need to know/specify which architecture you are running on and makes docker run commands and docker compose files more flexible and exchangeable across systems.

Expand Down Expand Up @@ -334,7 +334,7 @@ Docker build process, the dependencies are installed under `/usr/src/node-red`.
The main sections to modify are

"dependencies": {
"node-red": "^2.1.5", <-- set the version of Node-RED here
"node-red": "^3.0.0", <-- set the version of Node-RED here
"node-red-dashboard": "*" <-- add any extra npm packages here
},

Expand Down
4 changes: 2 additions & 2 deletions docker-custom/Dockerfile.custom
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
ARG ARCH=amd64
ARG NODE_VERSION=14
ARG OS=alpine3.12
ARG NODE_VERSION=16
ARG OS=alpine

#### Stage BASE ########################################################################################################
FROM ${ARCH}/node:${NODE_VERSION}-${OS} AS base
Expand Down
2 changes: 1 addition & 1 deletion docker-custom/Dockerfile.debian
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
ARG ARCH=amd64
ARG NODE_VERSION=14
ARG NODE_VERSION=16
ARG OS=buster-slim

#### Stage BASE ########################################################################################################
Expand Down
4 changes: 2 additions & 2 deletions docker-custom/docker-alpine.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ echo "#########################################################################"

docker build --rm --no-cache \
--build-arg ARCH=amd64 \
--build-arg NODE_VERSION=14 \
--build-arg NODE_VERSION=16 \
--build-arg NODE_RED_VERSION=${NODE_RED_VERSION} \
--build-arg OS=alpine3.12 \
--build-arg OS=alpine \
--build-arg BUILD_DATE="$(date +"%Y-%m-%dT%H:%M:%SZ")" \
--build-arg TAG_SUFFIX=default \
--file Dockerfile.custom \
Expand Down
2 changes: 1 addition & 1 deletion docker-custom/docker-debian.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ echo "#########################################################################"

docker build --rm --no-cache \
--build-arg ARCH=amd64 \
--build-arg NODE_VERSION=14 \
--build-arg NODE_VERSION=16 \
--build-arg NODE_RED_VERSION=${NODE_RED_VERSION} \
--build-arg OS=buster-slim \
--build-arg BUILD_DATE="$(date +"%Y-%m-%dT%H:%M:%SZ")" \
Expand Down
4 changes: 2 additions & 2 deletions docker-custom/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "node-red-docker",
"version": "2.2.0-beta.1",
"version": "3.0.0-beta.1",
"description": "Low-code programming for event-driven applications",
"homepage": "http://nodered.org",
"license": "Apache-2.0",
Expand Down Expand Up @@ -29,7 +29,7 @@
}
],
"dependencies": {
"node-red": "2.2.0-beta.1"
"node-red": "3.0.0-beta.1"
},
"engines": {
"node": ">=12"
Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "node-red-docker",
"version": "2.2.0-beta.1",
"version": "3.0.0-beta.1",
"description": "Low-code programming for event-driven applications",
"homepage": "http://nodered.org",
"license": "Apache-2.0",
Expand Down Expand Up @@ -29,7 +29,7 @@
}
],
"dependencies": {
"node-red": "2.2.0-beta.1"
"node-red": "3.0.0-beta.1"
},
"engines": {
"node": ">=12"
Expand Down

0 comments on commit 79b0539

Please sign in to comment.