Skip to content

Commit 13992f0

Browse files
authored
Merge pull request #520 from node-red/dev
Dev to Master for NR 5.0 release
2 parents 24baa1e + fa2298a commit 13992f0

10 files changed

Lines changed: 49 additions & 104 deletions

File tree

.docker/Dockerfile.alpine

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
ARG NODE_VERSION=20
1+
ARG NODE_VERSION=24
22
ARG OS=alpine
33

44
#### Stage BASE ########################################################################################################

.docker/Dockerfile.debian

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
ARG NODE_VERSION=20
2-
ARG OS=bookworm-slim
1+
ARG NODE_VERSION=24
2+
ARG OS=trixie-slim
33

44
#### Stage BASE ########################################################################################################
55
FROM node:${NODE_VERSION}-${OS} AS base

.github/workflows/main.yml

Lines changed: 19 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
alpine:
2121
env:
2222
# Setting the defaults up front
23-
LATEST_NODE: 20
23+
LATEST_NODE: 24
2424
DEFAULT_IMAGE: nodered/node-red
2525
GH_IMAGE: ghcr.io/node-red/node-red
2626
DEV_IMAGE: nodered/node-red-dev
@@ -30,20 +30,20 @@ jobs:
3030
strategy:
3131
max-parallel: 2
3232
matrix:
33-
node: [18, 20, 22]
33+
node: [24]
3434
suffix: ["", "-minimal"]
3535

3636
# Steps represent a sequence of tasks that will be executed as part of the job
3737
steps:
3838
-
3939
name: Checkout
40-
uses: actions/checkout@v4.1.2
40+
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
4141
- name: Show Env
4242
run: env
4343
-
4444
name: Docker Metadata
4545
id: meta
46-
uses: docker/metadata-action@v5
46+
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5.10.0
4747
with:
4848
flavor: |
4949
latest=false
@@ -57,7 +57,7 @@ jobs:
5757
5858
-
5959
name: Setup QEMU
60-
uses: docker/setup-qemu-action@v3
60+
uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0
6161
with:
6262
platforms: arm64
6363
-
@@ -78,7 +78,7 @@ jobs:
7878
port: 2023
7979
-
8080
name: Setup Docker buildx
81-
uses: docker/setup-buildx-action@v3
81+
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
8282
with:
8383
append: |
8484
- endpoint: ssh://nr@${{ secrets.SSH_REMOTE_HOST }}:2023
@@ -155,18 +155,7 @@ jobs:
155155
fi
156156
fi
157157
158-
# if [[ "${{ matrix.node }}" == "18"]]; then
159-
# echo "platforms=linux/amd64,linux/arm/v7,linux/arm64" >> $GITHUB_OUTPUT
160-
# else
161-
# echo "platforms=linux/amd64,linux/arm64" >> $GITHUB_OUTPUT
162-
# fi
163-
164-
# if [[ "${{ matrix.suffix }}" == "-minimal" ]]; then
165-
# echo "platforms=linux/amd64,linux/arm64" >> $GITHUB_OUTPUT
166-
# else
167-
# echo "platforms=linux/amd64,linux/arm/v7,linux/arm64" >> $GITHUB_OUTPUT
168-
# fi
169-
echo "platforms=linux/amd64,linux/arm/v7,linux/arm64" >> $GITHUB_OUTPUT
158+
echo "platforms=linux/amd64,linux/arm64" >> $GITHUB_OUTPUT
170159
171160
echo $TAGS
172161
echo "tags=$TAGS" >> $GITHUB_OUTPUT
@@ -182,21 +171,21 @@ jobs:
182171
# echo "::set-output name=buildVersion::$VERSION"
183172
-
184173
name: Login to DockerHub
185-
uses: docker/login-action@v3
174+
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
186175
with:
187176
username: ${{ secrets.DOCKERHUB_USERNAME }}
188177
password: ${{ secrets.DOCKERHUB_TOKEN }}
189178
-
190179
name: Login to GitHub Container Registry
191-
uses: docker/login-action@v3
180+
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
192181
with:
193182
registry: ghcr.io
194183
username: ${{ github.repository_owner }}
195184
password: ${{ secrets.GITHUB_TOKEN }}
196185
-
197186
name: Build and push
198187
id: build-push
199-
uses: docker/build-push-action@v5
188+
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
200189
with:
201190
context: .
202191
platforms: ${{ steps.nrVersion.outputs.platforms }}
@@ -215,7 +204,7 @@ jobs:
215204
debian:
216205
env:
217206
# Setting the defaults up front
218-
LATEST_NODE: 20
207+
LATEST_NODE: 24
219208
DEFAULT_IMAGE: nodered/node-red
220209
GH_IMAGE: ghcr.io/node-red/node-red
221210
DEV_IMAGE: nodered/node-red-dev
@@ -224,20 +213,20 @@ jobs:
224213

225214
steps:
226215
- name: Checkout
227-
uses: actions/checkout@v4.1.2
216+
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
228217
- name: Setup QEMU
229-
uses: docker/setup-qemu-action@v3
218+
uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0
230219
with:
231220
image: tonistiigi/binfmt:qemu-v7.0.0-28
232221
- name: Setup Docker buildx
233-
uses: docker/setup-buildx-action@v3
222+
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
234223
- name: Login to DockerHub
235-
uses: docker/login-action@v3
224+
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
236225
with:
237226
username: ${{ secrets.DOCKERHUB_USERNAME }}
238227
password: ${{ secrets.DOCKERHUB_TOKEN }}
239228
- name: Login to GitHub Container Registry
240-
uses: docker/login-action@v3
229+
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
241230
with:
242231
registry: ghcr.io
243232
username: ${{ github.repository_owner }}
@@ -248,7 +237,7 @@ jobs:
248237
run : echo "date=$(date +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_OUTPUT
249238
- name: Docker Metadata
250239
id: meta
251-
uses: docker/metadata-action@v5
240+
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5.10.0
252241
with:
253242
flavor: |
254243
latest=false
@@ -318,10 +307,10 @@ jobs:
318307
319308
- name: Build and push
320309
id: build-push
321-
uses: docker/build-push-action@v5
310+
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
322311
with:
323312
context: .
324-
platforms: linux/amd64, linux/arm64, linux/arm/v7
313+
platforms: linux/amd64, linux/arm64
325314
file: .docker/Dockerfile.debian
326315
push: ${{ steps.nrVersion.outputs.push }}
327316
build-args: |

README.md

Lines changed: 18 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Let's dissect that command:
2828
-p 1880:1880 - connect local port 1880 to the exposed internal port 1880
2929
-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
3030
--name mynodered - give this machine a friendly local name
31-
nodered/node-red - the image to base it on - currently Node-RED v4.1.11
31+
nodered/node-red - the image to base it on - currently Node-RED v5.0.0
3232

3333

3434

@@ -37,9 +37,9 @@ Running that command should give a terminal window with a running instance of No
3737
Welcome to Node-RED
3838
===================
3939

40-
10 Oct 12:57:10 - [info] Node-RED version: v4.1.11
41-
10 Oct 12:57:10 - [info] Node.js version: v18.19.0
42-
10 Oct 12:57:10 - [info] Linux 6.6.13-100.fc38.x86_64 x64 LE
40+
10 Oct 12:57:10 - [info] Node-RED version: v5.0.0
41+
10 Oct 12:57:10 - [info] Node.js version: v24.11.1
42+
10 Oct 12:57:10 - [info] Linux 6.17.5-200.fc42.x86_64 x64 LE
4343
10 Oct 12:57:11 - [info] Loading palette nodes
4444
10 Oct 12:57:16 - [info] Settings file : /data/settings.js
4545
10 Oct 12:57:16 - [info] Context store : 'default' [module=memory]
@@ -114,79 +114,35 @@ Using Alpine Linux reduces the built image size, but removes standard dependenci
114114

115115
The following table shows the variety of provided Node-RED images.
116116

117-
| **Tag** |**Node**| **Arch** | **Python** |**Dev**| **Base Image** |
118-
|----------------------------|--------|----------|------------|-------|----------------------------|
119-
| 4.1.11-18 | 18 | amd64 | 3.x | yes | amd64/node:18-alpine |
120-
| | 18 | arm32v7 | 3.x | yes | arm32v7/node:18-alpine |
121-
| | 18 | arm64v8 | 3.x | yes | arm64v8/node:18-alpine |
122-
| | | | | | |
123-
| 4.1.11-18-minimal | 18 | amd64 | no | no | amd64/node:18-alpine |
124-
| | 18 | arm32v7 | no | no | arm32v7/node:18-alpine |
125-
| | 18 | arm64v8 | no | no | arm64v8/node:18-alpine |
126-
127-
| **Tag** |**Node**| **Arch** | **Python** |**Dev**| **Base Image** |
128-
|----------------------------|--------|----------|------------|-------|----------------------------|
129-
| 4.1.11-20 | 20 | amd64 | 3.x | yes | amd64/node:20-alpine |
130-
| | 20 | arm32v7 | 3.x | yes | arm32v7/node:20-alpine |
131-
| | 20 | arm64v8 | 3.x | yes | arm64v8/node:20-alpine |
132-
| | | | | | |
133-
| 4.1.11-20-minimal | 20 | amd64 | no | no | amd64/node:20-alpine |
134-
| | 20 | arm32v7 | no | no | arm32v7/node:20-alpine |
135-
| | 20 | arm64v8 | no | no | arm64v8/node:20-alpine |
136-
| | | | | | |
137-
| 4.1.11-debian | 20 | amd64 | 3.x | yes | amd64/node:20-buster-slim |
138-
| | 20 | arm32v7 | 3.x | yes | amd64/node:20-buster-slim |
139-
| | 20 | arm64v8 | 3.x | yes | amd64/node:20-buster-slim |
140-
141-
| **Tag** |**Node**| **Arch** | **Python** |**Dev**| **Base Image** |
142-
|----------------------------|--------|----------|------------|-------|----------------------------|
143-
| 4.1.11-22 | 22 | amd64 | 3.x | yes | amd64/node:22-alpine |
144-
| | 22 | arm32v7 | 3.x | yes | arm32v7/node:22-alpine |
145-
| | 22 | arm64v8 | 3.x | yes | arm64v8/node:22-alpine |
146-
| | | | | | |
147-
| 4.1.11-22-minimal | 22 | amd64 | no | no | amd64/node:22-alpine |
148-
| | 22 | arm32v7 | no | no | arm32v7/node:22-alpine |
149-
| | 22 | arm64v8 | no | no | arm64v8/node:22-alpine |
150-
117+
| **Tag** |**Node**| **Arch** | **Python** |**Dev**| **Base Image** |
118+
|:---------------------------|:------:|:--------:|:----------:|:-----:|:-----------------------------|
119+
| 5.0.0-24 | 24 | amd64 | 3.x | yes | amd64/node:24-alpine |
120+
| | 24 | arm64v8 | 3.x | yes | arm64v8/node:24-alpine |
121+
| | | | | | |
122+
| 5.0.0-24-minimal | 24 | amd64 | no | no | amd64/node:24-alpine |
123+
| | 24 | arm64v8 | no | no | arm64v8/node:24-alpine |
124+
| | | | | | |
125+
| 5.0.0-debian | 24 | amd64 | 3.x | yes | amd64/node:24-trixie-slim |
126+
| | 24 | arm64v8 | 3.x | yes | arm64v8/node:24-trixie-slim |
151127

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

154130
## Manifest Lists
155131
The following table shows the provided Manifest Lists.
156132

157-
| **Tag** | **Node-RED Base Image** |
158-
|----------------------------------------|--------------------------------------------|
159-
| latest, 4.1.11, | nodered/node-red:4.1.11-20 |
160-
| latest-20, 4.1.11-20 | |
161-
| | |
162-
| | |
163-
| latest-minimal, 4.1.11-minimal, | nodered/node-red:4.1.11-20-minimal |
164-
| latest-20-minimal, 4.1.11-20-minimal | |
165-
| | |
166-
| latest-debian | nodered/node-red:latest-debian |
167-
168133

169134
| **Tag** | **Node-RED Base Image** |
170135
|----------------------------------------|--------------------------------------------|
171-
| latest-18, 4.1.11-18 | nodered/node-red:4.1.11-18 |
172-
| | |
173-
| latest-18-minimal, 4.1.11-18-minimal | nodered/node-red:4.1.11-18-minimal |
174-
175-
176-
| **Tag** | **Node-RED Base Image** |
177-
|----------------------------------------|--------------------------------------------|
178-
| latest-22, 4.1.11-22 | nodered/node-red:4.1.11-22 |
179-
| | |
180-
| latest-22-minimal, 4.1.11-22-minimal | nodered/node-red:4.1.11-22-minimal
181-
136+
| latest, latest-24, 5.0.0-24 | nodered/node-red:5.0.0-24 |
137+
| latest-24-minimal, 5.0.0-24-minimal | nodered/node-red:5.0.0.6-24-minimal |
182138

183139
With the support of Docker manifest list, there is no need to explicitly add the tag for the architecture to use.
184140
When a docker run command or docker service command or docker stack command is executed, docker checks which architecture is required and verifies if it is available in the docker repository. If it does, docker pulls the matching image for it.
185141

186142
Therefore all tags regarding Raspberry PI's are dropped.
187143

188-
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 `4.1.11-20`), and run the container.
189144

145+
For example: suppose you are running on a Raspberry PI 4B, which has `arm64v8` as architecture. Then just run the following command to pull the image (tagged by `5.0.0-24`), and run the container.
190146

191147
```
192148
docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red:latest
@@ -325,7 +281,7 @@ Docker build process, the dependencies are installed under `/usr/src/node-red`.
325281
The main sections to modify are
326282

327283
"dependencies": {
328-
"node-red": "^4.1.11", <-- set the version of Node-RED here
284+
"node-red": "^5.0.0", <-- set the version of Node-RED here
329285
"node-red-dashboard": "*" <-- add any extra npm packages here
330286
},
331287

docker-custom/Dockerfile.custom

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
ARG ARCH=amd64
2-
ARG NODE_VERSION=20
2+
ARG NODE_VERSION=24
33
ARG OS=alpine
44

55
#### Stage BASE ########################################################################################################

docker-custom/Dockerfile.debian

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
ARG ARCH=amd64
2-
ARG NODE_VERSION=20
3-
ARG OS=bookworm-slim
2+
ARG NODE_VERSION=24
3+
ARG OS=trixie-slim
44

55
#### Stage BASE ########################################################################################################
66
FROM ${ARCH}/node:${NODE_VERSION}-${OS} AS base

docker-custom/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ The `docker-alpine.sh` and `docker-debian.sh` are helper scripts to build a cust
3131

3232
Change the build arguments as needed:
3333

34-
- `--build-arg ARCH=amd64` : architecture your are building for (arm32v6, arm32v7, arm64v8, amd64)
35-
- `--build-arg NODE_VERSION=20` : NodeJS version you like to use
34+
- `--build-arg ARCH=amd64` : architecture your are building for (arm64v8, amd64)
35+
- `--build-arg NODE_VERSION=24` : NodeJS version you like to use
3636
- `--build-arg NODE_RED_VERSION=${NODE_RED_VERSION}` : don't change this, ${NODE_RED_VERSION} gets populated from package.json
3737
- `--build-arg OS=alpine` : the linux distro to use (alpine)
3838
- `--build-arg BUILD_DATE="$(date +"%Y-%m-%dT%H:%M:%SZ")"` : don't change this

docker-custom/docker-alpine.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ echo "#########################################################################"
77

88
docker build --rm --no-cache \
99
--build-arg ARCH=amd64 \
10-
--build-arg NODE_VERSION=20 \
10+
--build-arg NODE_VERSION=24 \
1111
--build-arg NODE_RED_VERSION=${NODE_RED_VERSION} \
1212
--build-arg OS=alpine \
1313
--build-arg BUILD_DATE="$(date +"%Y-%m-%dT%H:%M:%SZ")" \

docker-custom/docker-debian.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ echo "#########################################################################"
77

88
docker build --rm --no-cache \
99
--build-arg ARCH=amd64 \
10-
--build-arg NODE_VERSION=20 \
10+
--build-arg NODE_VERSION=24 \
1111
--build-arg NODE_RED_VERSION=${NODE_RED_VERSION} \
1212
--build-arg OS=bookworm-slim \
1313
--build-arg BUILD_DATE="$(date +"%Y-%m-%dT%H:%M:%SZ")" \

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "node-red-docker",
3-
"version": "4.1.11",
3+
"version": "5.0.0-beta.6",
44
"description": "Low-code programming for event-driven applications",
55
"homepage": "http://nodered.org",
66
"license": "Apache-2.0",
@@ -29,7 +29,7 @@
2929
}
3030
],
3131
"dependencies": {
32-
"node-red": "4.1.11"
32+
"node-red": "5.0.0"
3333
},
3434
"engines": {
3535
"node": ">=18"

0 commit comments

Comments
 (0)