Skip to content

Commit 472d29f

Browse files
committed
Merge branch 'dev' of github.com:hardillb/node-red-docker into dev
2 parents 432037f + b256886 commit 472d29f

File tree

7 files changed

+42
-32
lines changed

7 files changed

+42
-32
lines changed

.docker/Dockerfile.debian

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

44
#### Stage BASE ########################################################################################################
55
FROM node:${NODE_VERSION}-${OS} AS base
@@ -47,7 +47,7 @@ COPY .docker/scripts/entrypoint.sh .
4747
FROM base AS build
4848

4949
# Install Build tools
50-
RUN apt-get update && apt-get install -y build-essential python && \
50+
RUN apt-get update && apt-get install -y build-essential python3 python-is-python3 && \
5151
npm install --unsafe-perm --no-update-notifier --no-fund --only=production && \
5252
npm uninstall node-red-node-gpio && \
5353
cp -R node_modules prod_node_modules
@@ -79,7 +79,7 @@ COPY --from=build /usr/src/node-red/prod_node_modules ./node_modules
7979

8080
# Chown, install devtools & Clean up
8181
RUN chown -R node-red:root /usr/src/node-red && \
82-
apt-get update && apt-get install -y build-essential python-dev python3 && \
82+
apt-get update && apt-get install -y build-essential python3-dev python3 && \
8383
rm -r /tmp/*
8484

8585
RUN npm config set cache /data/.npm --global

.github/workflows/main.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,12 @@ jobs:
142142
else
143143
PUSH=false
144144
fi
145+
145146
VERSION=${TRAVIS_TAG}
147+
if [[ "$VERSION" =~ ^v ]]; then
148+
VERSION=${TRAVIS_TAG:1}
149+
fi
150+
146151
TAGS=$(echo $TAGS | sed 's!${{ env.DEFAULT_IMAGE}}!${{ env.DEV_IMAGE }}!')
147152
TAGS=$(echo $TAGS | sed 's!${{ env.GH_IMAGE}}!${{ env.GH_DEV_IMAGE }}!')
148153
if [ "${{ matrix.node }}" == "${{ env.LATEST_NODE }}" ] && [ "${{ matrix.suffix}}" == "" ]; then
@@ -293,7 +298,11 @@ jobs:
293298
else
294299
PUSH=false
295300
fi
301+
296302
VERSION=${TRAVIS_TAG}
303+
if [[ "$VERSION" =~ ^v ]]; then
304+
VERSION=${TRAVIS_TAG:1}
305+
fi
297306
298307
TAGS="$IMAGE:$VERSION-debian,$GH_DEV_IMAGE:$VERSION-debian"
299308

README.md

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ Some basic familiarity with Docker and the [Docker Command Line](https://docs.do
1212

1313
As of Node-RED 1.0 this project provides the build for the `nodered/node-red` container on [Docker Hub](https://hub.docker.com/r/nodered/node-red/).
1414

15+
As of Node-RED 4.0.9 the containers are also available from the [GitHub Container Regisry](https://github.com/node-red/node-red-docker/pkgs/container/node-red) as `ghcr.io/node-red/node-red` with the same tag names as on Docker Hub.
16+
1517
Previous 0.20.x versions are still available at https://hub.docker.com/r/nodered/node-red-docker.
1618

1719
## Quick Start
@@ -26,7 +28,7 @@ Let's dissect that command:
2628
-p 1880:1880 - connect local port 1880 to the exposed internal port 1880
2729
-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
2830
--name mynodered - give this machine a friendly local name
29-
nodered/node-red - the image to base it on - currently Node-RED v4.1.0-beta.2
31+
nodered/node-red - the image to base it on - currently Node-RED v4.1.2
3032

3133

3234

@@ -35,7 +37,7 @@ Running that command should give a terminal window with a running instance of No
3537
Welcome to Node-RED
3638
===================
3739

38-
10 Oct 12:57:10 - [info] Node-RED version: v4.1.0-beta.2
40+
10 Oct 12:57:10 - [info] Node-RED version: v4.1.2
3941
10 Oct 12:57:10 - [info] Node.js version: v18.19.0
4042
10 Oct 12:57:10 - [info] Linux 6.6.13-100.fc38.x86_64 x64 LE
4143
10 Oct 12:57:11 - [info] Loading palette nodes
@@ -93,13 +95,12 @@ and stop it again when required:
9395
The Node-RED images come in different variations and are supported by manifest lists (auto-detect architecture).
9496
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.
9597

96-
The tag naming convention is `<node-red-version>-<node-version>-<image-type>-<architecture>`, where:
98+
The tag naming convention is `<node-red-version>-<node-version>-<image-type>`, where:
9799
- `<node-red-version>` is the Node-RED version.
98100
- `<node-version>` is the Node JS version.
99101
- `<image-type>` is type of image and is optional, can be either _none_ or minimal.
100102
- _none_ : is the default and has Python 2 & Python 3 + devtools installed
101103
- minimal : has no Python installed and no devtools installed
102-
- `<architecture>` is the architecture of the Docker host system, can be either amd64, arm32v6, arm32v7, arm64, s390x or i386.
103104

104105
The minimal versions (without python and build tools) are not able to install nodes that require any locally compiled native code.
105106

@@ -115,40 +116,40 @@ The following table shows the variety of provided Node-RED images.
115116

116117
| **Tag** |**Node**| **Arch** | **Python** |**Dev**| **Base Image** |
117118
|----------------------------|--------|----------|------------|-------|----------------------------|
118-
| 4.1.0-beta.2-18 | 18 | amd64 | 3.x | yes | amd64/node:18-alpine |
119+
| 4.1.2-18 | 18 | amd64 | 3.x | yes | amd64/node:18-alpine |
119120
| | 18 | arm32v7 | 3.x | yes | arm32v7/node:18-alpine |
120121
| | 18 | arm64v8 | 3.x | yes | arm64v8/node:18-alpine |
121122
| | 18 | i386 | 3.x | yes | i386/node:18-alpine |
122123
| | | | | | |
123-
| 4.1.0-beta.2-18-minimal | 18 | amd64 | no | no | amd64/node:18-alpine |
124+
| 4.1.2-18-minimal | 18 | amd64 | no | no | amd64/node:18-alpine |
124125
| | 18 | arm32v7 | no | no | arm32v7/node:18-alpine |
125126
| | 18 | arm64v8 | no | no | arm64v8/node:18-alpine |
126127
| | 18 | i386 | no | no | i386/node:18-alpine |
127128

128129
| **Tag** |**Node**| **Arch** | **Python** |**Dev**| **Base Image** |
129130
|----------------------------|--------|----------|------------|-------|----------------------------|
130-
| 4.1.0-beta.2-20 | 20 | amd64 | 3.x | yes | amd64/node:20-alpine |
131+
| 4.1.2-20 | 20 | amd64 | 3.x | yes | amd64/node:20-alpine |
131132
| | 20 | arm32v7 | 3.x | yes | arm32v7/node:20-alpine |
132133
| | 20 | arm64v8 | 3.x | yes | arm64v8/node:20-alpine |
133134
| | 20 | i386 | 3.x | yes | i386/node:20-alpine |
134135
| | | | | | |
135-
| 4.1.0-beta.2-20-minimal | 20 | amd64 | no | no | amd64/node:20-alpine |
136+
| 4.1.2-20-minimal | 20 | amd64 | no | no | amd64/node:20-alpine |
136137
| | 20 | arm32v7 | no | no | arm32v7/node:20-alpine |
137138
| | 20 | arm64v8 | no | no | arm64v8/node:20-alpine |
138139
| | 20 | i386 | no | no | i386/node:20-alpine |
139140
| | | | | | |
140-
| 4.1.0-beta.2-debian | 20 | amd64 | 3.x | yes | amd64/node:20-buster-slim |
141+
| 4.1.2-debian | 20 | amd64 | 3.x | yes | amd64/node:20-buster-slim |
141142
| | 20 | arm32v7 | 3.x | yes | amd64/node:20-buster-slim |
142143
| | 20 | arm64v8 | 3.x | yes | amd64/node:20-buster-slim |
143144

144145
| **Tag** |**Node**| **Arch** | **Python** |**Dev**| **Base Image** |
145146
|----------------------------|--------|----------|------------|-------|----------------------------|
146-
| 4.1.0-beta.2-22 | 22 | amd64 | 3.x | yes | amd64/node:22-alpine |
147+
| 4.1.2-22 | 22 | amd64 | 3.x | yes | amd64/node:22-alpine |
147148
| | 22 | arm32v7 | 3.x | yes | arm32v7/node:22-alpine |
148149
| | 22 | arm64v8 | 3.x | yes | arm64v8/node:22-alpine |
149150
| | 22 | i386 | 3.x | yes | i386/node:22-alpine |
150151
| | | | | | |
151-
| 4.1.0-beta.2-22-minimal | 22 | amd64 | no | no | amd64/node:22-alpine |
152+
| 4.1.2-22-minimal | 22 | amd64 | no | no | amd64/node:22-alpine |
152153
| | 22 | arm32v7 | no | no | arm32v7/node:22-alpine |
153154
| | 22 | arm64v8 | no | no | arm64v8/node:22-alpine |
154155
| | 22 | i386 | no | no | i386/node:22-alpine |
@@ -160,36 +161,36 @@ The following table shows the provided Manifest Lists.
160161

161162
| **Tag** | **Node-RED Base Image** |
162163
|----------------------------------------|--------------------------------------------|
163-
| latest, 4.1.0-beta.2, | nodered/node-red:4.1.0-beta.2-20 |
164-
| latest-20, 4.1.0-beta.2-20 | |
164+
| latest, 4.1.2, | nodered/node-red:4.1.2-20 |
165+
| latest-20, 4.1.2-20 | |
165166
| | |
166167
| | |
167-
| latest-minimal, 4.1.0-beta.2-minimal, | nodered/node-red:4.1.0-beta.2-20-minimal |
168-
| latest-20-minimal, 4.1.0-beta.2-20-minimal | |
168+
| latest-minimal, 4.1.2-minimal, | nodered/node-red:4.1.2-20-minimal |
169+
| latest-20-minimal, 4.1.2-20-minimal | |
169170
| | |
170171
| latest-debian | nodered/node-red:latest-debian |
171172

172173

173174
| **Tag** | **Node-RED Base Image** |
174175
|----------------------------------------|--------------------------------------------|
175-
| latest-18, 4.1.0-beta.2-18 | nodered/node-red:4.1.0-beta.2-18 |
176+
| latest-18, 4.1.2-18 | nodered/node-red:4.1.2-18 |
176177
| | |
177-
| latest-18-minimal, 4.1.0-beta.2-18-minimal | nodered/node-red:4.1.0-beta.2-18-minimal |
178+
| latest-18-minimal, 4.1.2-18-minimal | nodered/node-red:4.1.2-18-minimal |
178179

179180

180181
| **Tag** | **Node-RED Base Image** |
181182
|----------------------------------------|--------------------------------------------|
182-
| latest-22, 4.1.0-beta.2-22 | nodered/node-red:4.1.0-beta.2-22 |
183+
| latest-22, 4.1.2-22 | nodered/node-red:4.1.2-22 |
183184
| | |
184-
| latest-22-minimal, 4.1.0-beta.2-22-minimal | nodered/node-red:4.1.0-beta.2-22-minimal
185+
| latest-22-minimal, 4.1.2-22-minimal | nodered/node-red:4.1.2-22-minimal
185186

186187

187188
With the support of Docker manifest list, there is no need to explicitly add the tag for the architecture to use.
188189
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.
189190

190191
Therefore all tags regarding Raspberry PI's are dropped.
191192

192-
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.0-beta.2-20`), and run the container.
193+
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.2-20`), and run the container.
193194

194195

195196
```
@@ -329,7 +330,7 @@ Docker build process, the dependencies are installed under `/usr/src/node-red`.
329330
The main sections to modify are
330331

331332
"dependencies": {
332-
"node-red": "^4.1.0-beta.2", <-- set the version of Node-RED here
333+
"node-red": "^4.1.2", <-- set the version of Node-RED here
333334
"node-red-dashboard": "*" <-- add any extra npm packages here
334335
},
335336

docker-custom/Dockerfile.debian

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

55
#### Stage BASE ########################################################################################################
66
FROM ${ARCH}/node:${NODE_VERSION}-${OS} AS base
@@ -48,7 +48,7 @@ COPY scripts/entrypoint.sh .
4848
FROM base AS build
4949

5050
# Install Build tools
51-
RUN apt-get update && apt-get install -y build-essential python && \
51+
RUN apt-get update && apt-get install -y build-essential python3 python-is-python3 && \
5252
npm install --unsafe-perm --no-update-notifier --no-fund --only=production && \
5353
npm uninstall node-red-node-gpio && \
5454
cp -R node_modules prod_node_modules
@@ -80,7 +80,7 @@ COPY --from=build /usr/src/node-red/prod_node_modules ./node_modules
8080

8181
# Chown, install devtools & Clean up
8282
RUN chown -R node-red:root /usr/src/node-red && \
83-
apt-get update && apt-get install -y build-essential python-dev python3 && \
83+
apt-get update && apt-get install -y build-essential python3-dev python3 && \
8484
rm -r /tmp/*
8585

8686
RUN npm config set cache /data/.npm --global

docker-custom/docker-debian.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ docker build --rm --no-cache \
99
--build-arg ARCH=amd64 \
1010
--build-arg NODE_VERSION=20 \
1111
--build-arg NODE_RED_VERSION=${NODE_RED_VERSION} \
12-
--build-arg OS=bullseye-slim \
12+
--build-arg OS=bookworm-slim \
1313
--build-arg BUILD_DATE="$(date +"%Y-%m-%dT%H:%M:%SZ")" \
1414
--build-arg TAG_SUFFIX=default \
1515
--file Dockerfile.debian \

docker-custom/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.0-beta.2",
3+
"version": "4.1.2",
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.0-beta.2"
32+
"node-red": "4.1.2"
3333
},
3434
"engines": {
3535
"node": ">=18"

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.0-beta.2",
3+
"version": "4.1.2",
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.0-beta.2"
32+
"node-red": "4.1.2"
3333
},
3434
"engines": {
3535
"node": ">=18"

0 commit comments

Comments
 (0)