@@ -26,17 +26,17 @@ Let's dissect that command:
2626 -p 1880:1880 - connect local port 1880 to the exposed internal port 1880
2727 -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
2828 --name mynodered - give this machine a friendly local name
29- nodered/node-red - the image to base it on - currently Node-RED v3.1.3
29+ nodered/node-red - the image to base it on - currently Node-RED v4.0.0
3030
3131
3232Running that command should give a terminal window with a running instance of Node-RED.
3333
3434 Welcome to Node-RED
3535 ===================
3636
37- 10 Oct 12:57:10 - [info] Node-RED version: v3.1.3
38- 10 Oct 12:57:10 - [info] Node.js version: v16.14.1
39- 10 Oct 12:57:10 - [info] Linux 4.19.76-linuxkit x64 LE
37+ 10 Oct 12:57:10 - [info] Node-RED version: v4.0.0
38+ 10 Oct 12:57:10 - [info] Node.js version: v18.19.0
39+ 10 Oct 12:57:10 - [info] Linux 6.6.13-100.fc38.x86_64 x64 LE
4040 10 Oct 12:57:11 - [info] Loading palette nodes
4141 10 Oct 12:57:16 - [info] Settings file : /data/settings.js
4242 10 Oct 12:57:16 - [info] Context store : 'default' [module=memory]
@@ -60,7 +60,7 @@ Running that command should give a terminal window with a running instance of No
6060
6161 10 Oct 12:57:17 - [info] Starting flows
6262 10 Oct 12:57:17 - [info] Started flows
63- 10 Oct 12:57:17 - [info] Server now running at http://127.0.0.1 :1880/
63+ 10 Oct 12:57:17 - [info] Server now running at http://localhost :1880/
6464
6565 [...]
6666
@@ -114,51 +114,51 @@ The following table shows the variety of provided Node-RED images.
114114
115115| ** Tag** | ** Node** | ** Arch** | ** Python** | ** Dev** | ** Base Image** |
116116| ----------------------------| --------| ----------| ------------| -------| ----------------------------|
117- | 3.1.3-14 | 14 | amd64 | 2.x 3.x | yes | amd64/node:14-alpine |
118- | | 14 | arm32v6 | 2.x 3.x | yes | arm32v6/node:14-alpine |
119- | | 14 | arm32v7 | 2.x 3.x | yes | arm32v7/node:14-alpine |
120- | | 14 | arm64v8 | 2.x 3.x | yes | arm64v8/node:14-alpine |
121- | | 14 | s390x | 2.x 3.x | yes | s390x/node:14-alpine |
122- | | 14 | i386 | 2.x 3.x | yes | i386/node:14-alpine |
117+ | 4.0.0-18 | 18 | amd64 | 3.x | yes | amd64/node:18-alpine |
118+ | | 18 | arm32v6 | 3.x | yes | arm32v6/node:18-alpine |
119+ | | 18 | arm32v7 | 3.x | yes | arm32v7/node:18-alpine |
120+ | | 18 | arm64v8 | 3.x | yes | arm64v8/node:18-alpine |
121+ | | 18 | i386 | 3.x | yes | i386/node:18-alpine |
123122| | | | | | |
124- | 3.1.3-14-minimal | 14 | amd64 | no | no | amd64/node:14-alpine |
125- | | 14 | arm32v6 | no | no | arm32v6/node:14-alpine |
126- | | 14 | arm32v7 | no | no | arm32v7/node:14-alpine |
127- | | 14 | arm64v8 | no | no | arm64v8/node:14-alpine |
128- | | 14 | s390x | no | no | s390x/node:14-alpine |
129- | | 14 | i386 | no | no | i386/node:14-alpine |
123+ | 4.0.0-18-minimal | 18 | amd64 | no | no | amd64/node:18-alpine |
124+ | | 18 | arm32v6 | no | no | arm32v6/node:18-alpine |
125+ | | 18 | arm32v7 | no | no | arm32v7/node:18-alpine |
126+ | | 18 | arm64v8 | no | no | arm64v8/node:18-alpine |
127+ | | 18 | i386 | no | no | i386/node:18-alpine |
130128
131129| ** Tag** | ** Node** | ** Arch** | ** Python** | ** Dev** | ** Base Image** |
132130| ----------------------------| --------| ----------| ------------| -------| ----------------------------|
133- | 3.1.3-16 | 16 | amd64 | 2.x 3.x | yes | amd64/node:16-alpine |
134- | | 16 | arm32v6 | 2.x 3.x | yes | arm32v6/node:16-alpine |
135- | | 16 | arm32v7 | 2.x 3.x | yes | arm32v7/node:16-alpine |
136- | | 16 | arm64v8 | 2.x 3.x | yes | arm64v8/node:16-alpine |
137- | | 16 | s390x | 2.x 3.x | yes | s390x/node:16-alpine |
138- | | 16 | i386 | 2.x 3.x | yes | i386/node:16-alpine |
131+ | 4.0.0-20 | 20 | amd64 | 3.x | yes | amd64/node:20-alpine |
132+ | | 20 | arm32v6 | 3.x | yes | arm32v6/node:20-alpine |
133+ | | 20 | arm32v7 | 3.x | yes | arm32v7/node:20-alpine |
134+ | | 20 | arm64v8 | 3.x | yes | arm64v8/node:20-alpine |
135+ | | 20 | i386 | 3.x | yes | i386/node:20-alpine |
139136| | | | | | |
140- | 3.1.3-16-minimal | 16 | amd64 | no | no | amd64/node:16-alpine |
141- | | 16 | arm32v6 | no | no | arm32v6/node:16-alpine |
142- | | 16 | arm32v7 | no | no | arm32v7/node:16-alpine |
143- | | 16 | arm64v8 | no | no | arm64v8/node:16-alpine |
144- | | 16 | s390x | no | no | s390x/node:16-alpine |
145- | | 16 | i386 | no | no | i386/node:16-alpine |
137+ | 4.0.0-20-minimal | 20 | amd64 | no | no | amd64/node:20-alpine |
138+ | | 20 | arm32v6 | no | no | arm32v6/node:20-alpine |
139+ | | 20 | arm32v7 | no | no | arm32v7/node:20-alpine |
140+ | | 20 | arm64v8 | no | no | arm64v8/node:20-alpine |
141+ | | 20 | i386 | no | no | i386/node:20-alpine |
142+ | | | | | | |
143+ | 4.0.0-debian | 20 | amd64 | 3.x | yes | amd64/node:20-buster-slim |
144+ | | 20 | arm32v7 | 3.x | yes | amd64/node:20-buster-slim |
145+ | | 20 | arm64v8 | 3.x | yes | amd64/node:20-buster-slim |
146+
147+ Coming when NodeJS v22 is released
146148
147149| ** Tag** | ** Node** | ** Arch** | ** Python** | ** Dev** | ** Base Image** |
148150| ----------------------------| --------| ----------| ------------| -------| ----------------------------|
149- | 3.1.3-18 | 18 | amd64 | 2.x 3.x | yes | amd64/node:18-alpine |
150- | | 18 | arm32v6 | 2.x 3.x | yes | arm32v6/node:18-alpine |
151- | | 18 | arm32v7 | 2.x 3.x | yes | arm32v7/node:18-alpine |
152- | | 18 | arm64v8 | 2.x 3.x | yes | arm64v8/node:18-alpine |
153- | | 18 | s390x | 2.x 3.x | yes | s390x/node:18-alpine |
154- | | 18 | i386 | 2.x 3.x | yes | i386/node:18-alpine |
151+ | 4.0.0-22 | 22 | amd64 | 3.x | yes | amd64/node:22-alpine |
152+ | | 22 | arm32v6 | 3.x | yes | arm32v6/node:22-alpine |
153+ | | 22 | arm32v7 | 3.x | yes | arm32v7/node:22-alpine |
154+ | | 22 | arm64v8 | 3.x | yes | arm64v8/node:22-alpine |
155+ | | 22 | i386 | 3.x | yes | i386/node:22-alpine |
155156| | | | | | |
156- | 3.1.3-18-minimal | 18 | amd64 | no | no | amd64/node:18-alpine |
157- | | 18 | arm32v6 | no | no | arm32v6/node:18-alpine |
158- | | 18 | arm32v7 | no | no | arm32v7/node:18-alpine |
159- | | 18 | arm64v8 | no | no | arm64v8/node:18-alpine |
160- | | 18 | s390x | no | no | s390x/node:18-alpine |
161- | | 18 | i386 | no | no | i386/node:18-alpine |
157+ | 4.0.0-22-minimal | 22 | amd64 | no | no | amd64/node:22-alpine |
158+ | | 22 | arm32v6 | no | no | arm32v6/node:22-alpine |
159+ | | 22 | arm32v7 | no | no | arm32v7/node:22-alpine |
160+ | | 22 | arm64v8 | no | no | arm64v8/node:22-alpine |
161+ | | 22 | i386 | no | no | i386/node:22-alpine |
162162
163163- All images have bash, tzdata, nano, curl, git, openssl and openssh-client pre-installed to support Node-RED's Projects feature.
164164
@@ -167,40 +167,42 @@ The following table shows the provided Manifest Lists.
167167
168168| ** Tag** | ** Node-RED Base Image** |
169169| ----------------------------------------| --------------------------------------------|
170- | latest, 3.1.3 , | nodered/node-red:3.1.3-16 |
171- | latest-16, 3.1.3-16 | |
170+ | latest, 4.0.0 , | nodered/node-red:4.0.0-20 |
171+ | latest-20, 4.0.0-20 | |
172172| | |
173173| | |
174- | latest-minimal, 3.1.3-minimal, | nodered/node-red:3.1.3-16-minimal |
175- | latest-16-minimal, 3.1.3-16-minimal | |
174+ | latest-minimal, 4.0.0-minimal, | nodered/node-red:4.0.0-20-minimal |
175+ | latest-20-minimal, 4.0.0-20-minimal | |
176+ | | |
177+ | latest-debian | nodered/node-red: latest-debian |
176178
177179
178180| ** Tag** | ** Node-RED Base Image** |
179181| ----------------------------------------| --------------------------------------------|
180- | latest-14, 3.1.3-14 | nodered/node-red:3.1.3-14 |
182+ | latest-18, 4.0.0-18 | nodered/node-red:4.0.0-18 |
181183| | |
182- | latest-14-minimal, 3.1.3-14-minimal | nodered/node-red:3.1.3-14-minimal |
184+ | latest-18-minimal, 4.0.0-18-minimal | nodered/node-red:4.0.0-18-minimal |
185+
186+ Coming when NodeJS v22 released
183187
184188| ** Tag** | ** Node-RED Base Image** |
185189| ----------------------------------------| --------------------------------------------|
186- | latest-18, 3.1.3-18 | nodered/node-red:3.1.3-18 |
190+ | latest-18, 4.0.0-22 | nodered/node-red:4.0.0-22 |
187191| | |
188- | latest-18 -minimal, 3.1.3-18 -minimal | nodered/node-red:3.1.3-18 -minimal
192+ | latest-22 -minimal, 4.0.0-22 -minimal | nodered/node-red:4.0.0-22 -minimal
189193
190194
191195With the support of Docker manifest list, there is no need to explicitly add the tag for the architecture to use.
192196When 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.
193197
194198Therefore all tags regarding Raspberry PI's are dropped.
195199
196- 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.1.3-16 ` ), and run the container.
200+ 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.0.0-20 ` ), and run the container.
197201
198202```
199203docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red:latest
200204```
201205
202- 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.1.3-16-amd64 ` ).
203-
204206This 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.
205207
206208
@@ -334,7 +336,7 @@ Docker build process, the dependencies are installed under `/usr/src/node-red`.
334336The main sections to modify are
335337
336338 "dependencies": {
337- "node-red": "^3.1.3 ", <-- set the version of Node-RED here
339+ "node-red": "^4.0.0 ", <-- set the version of Node-RED here
338340 "node-red-dashboard": "*" <-- add any extra npm packages here
339341 },
340342
0 commit comments