Skip to content

Commit 08c2930

Browse files
committed
20220708 Node-RED - old-menu branch - PR 2 of 2
Adopts build-argument syntax in template service definition. In `build.sh`: * Harmonises list of add-on nodes (and default on/off states) to be consistent with master branch. * Constructs Dockerfile header as a "here" document to make future maintenance easier. Identical to `Dockerfile.template` on master branch. All documentation on master branch. Signed-off-by: Phill Kelley <[email protected]>
1 parent 255500d commit 08c2930

File tree

2 files changed

+42
-7
lines changed

2 files changed

+42
-7
lines changed

.templates/nodered/build.sh

Lines changed: 37 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ node_selection=$(whiptail --title "Node-RED nodes" --checklist --separate-output
1212
"node-red-configurable-ping" " " "ON" \
1313
"node-red-node-openweathermap" " " "OFF" \
1414
"node-red-contrib-discord" " " "OFF" \
15-
"node-red-node-email" " " "on" \
15+
"node-red-node-email" " " "OFF" \
1616
"node-red-node-google" " " "OFF" \
1717
"node-red-node-emoncms" " " "OFF" \
1818
"node-red-node-geofence" " " "OFF" \
@@ -21,13 +21,16 @@ node_selection=$(whiptail --title "Node-RED nodes" --checklist --separate-output
2121
"node-red-node-smooth" " " "OFF" \
2222
"node-red-node-darksky" " " "OFF" \
2323
"node-red-node-sqlite" " " "OFF" \
24+
"node-red-node-serialport" " " "OFF" \
2425
"node-red-contrib-config" " " "OFF" \
2526
"node-red-contrib-grove" " " "OFF" \
2627
"node-red-contrib-diode" " " "OFF" \
28+
"node-red-contrib-sunevents" " " "OFF" \
2729
"node-red-contrib-bigtimer" " " "OFF" \
2830
"node-red-contrib-esplogin" " " "OFF" \
2931
"node-red-contrib-timeout" " " "OFF" \
3032
"node-red-contrib-moment" " " "OFF" \
33+
"node-red-contrib-telegrambot" " " "OFF" \
3134
"node-red-contrib-particle" " " "OFF" \
3235
"node-red-contrib-web-worldmap" " " "OFF" \
3336
"node-red-contrib-ramp-thermostat" " " "OFF" \
@@ -41,6 +44,13 @@ node_selection=$(whiptail --title "Node-RED nodes" --checklist --separate-output
4144
"node-red-contrib-heater-controller" " " "OFF" \
4245
"node-red-contrib-deconz" " " "OFF" \
4346
"node-red-contrib-generic-ble" " " "OFF" \
47+
"node-red-contrib-zigbee2mqtt" " " "OFF" \
48+
"node-red-contrib-vcgencmd" " " "OFF" \
49+
"node-red-contrib-themes/midnight-red" " " "OFF" \
50+
"node-red-contrib-tf-function" " " "OFF" \
51+
"node-red-contrib-tf-model" " " "OFF" \
52+
"node-red-contrib-post-object-detection" " " "OFF" \
53+
"node-red-contrib-bert-tokenizer" " " "OFF" \
4454
3>&1 1>&2 2>&3)
4555

4656
##echo "$check_selection"
@@ -50,12 +60,33 @@ nr_dfile=./services/nodered/Dockerfile
5060

5161
sqliteflag=0
5262

53-
touch $nr_dfile
54-
echo "FROM nodered/node-red:latest-12" >$nr_dfile
63+
# initialise Dockerfile ('EOT' syntax avoids bash substitutions)
64+
cat <<-'EOT' >"$nr_dfile"
65+
# reference argument - omitted defaults to latest
66+
ARG DOCKERHUB_TAG=latest
5567
56-
echo "USER root" >>$nr_dfile
57-
echo "RUN apk update && apk add --no-cache eudev-dev" >>$nr_dfile
58-
echo "USER node-red" >>$nr_dfile
68+
# Download base image
69+
FROM nodered/node-red:${DOCKERHUB_TAG}
70+
71+
# reference argument - omitted defaults to null
72+
ARG EXTRA_PACKAGES
73+
ENV EXTRA_PACKAGES=${EXTRA_PACKAGES}
74+
75+
# default user is node-red - need to be root to install packages
76+
USER root
77+
78+
# install packages
79+
RUN apk update && apk add --no-cache eudev-dev ${EXTRA_PACKAGES}
80+
81+
# switch back to default user
82+
USER node-red
83+
84+
# variable not needed inside running container
85+
ENV EXTRA_PACKAGES=
86+
87+
# add-on nodes follow
88+
89+
EOT
5990

6091
#node red install script inspired from https://tech.scargill.net/the-script/
6192
echo "RUN for addonnodes in \\" >>$nr_dfile

.templates/nodered/service.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
nodered:
22
container_name: nodered
3-
build: ./services/nodered/.
3+
build:
4+
context: ./services/nodered/.
5+
args:
6+
- DOCKERHUB_TAG=latest
7+
- EXTRA_PACKAGES=
48
restart: unless-stopped
59
user: "0"
610
env_file: ./services/nodered/nodered.env

0 commit comments

Comments
 (0)