Skip to content

Pull latest Readme changes across from dev #204

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 49 commits into from
Oct 15, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
256e2fe
Added support for s390x
RaymondMouthaan Oct 5, 2019
d5561a6
Added support for s390x - manifest list added
RaymondMouthaan Oct 5, 2019
f127f19
bump node-red 1.0.1
RaymondMouthaan Oct 5, 2019
d755966
Merge branch 'master' into dev
Oct 7, 2019
4a2036e
add s390x to Readme [skip travis]
Oct 10, 2019
ad4671d
Update README.md [skip travis]
Oct 13, 2019
64521cb
Feature development repo (#149)
RaymondMouthaan Oct 16, 2019
822189e
Add healthcheck to dev
Oct 17, 2019
e1238f8
Feature/i386 (#153)
RaymondMouthaan Oct 17, 2019
cc1be4d
- added `dev` manifest list tag
RaymondMouthaan Oct 17, 2019
7413f91
- if condition fix
RaymondMouthaan Oct 17, 2019
930d236
Fixup dev branch custom package.json to 1.0.2
Oct 17, 2019
09c1708
Merge branch 'dev'
RaymondMouthaan Oct 18, 2019
253ab8d
- missing i386 added
RaymondMouthaan Oct 18, 2019
7fb3731
let healthcheck be more tolerant
Oct 18, 2019
8a1f5b9
Merge branch 'dev' of http://github.com/node-red/node-red-docker into…
Oct 18, 2019
58798e1
- [skip travis] added Dockerhub Stars
RaymondMouthaan Oct 20, 2019
c1515e3
Merge remote-tracking branch 'origin/dev' into dev
RaymondMouthaan Oct 20, 2019
6b2fe1a
- [skip travis] textual
RaymondMouthaan Oct 20, 2019
956d963
- fix: set Docker Repo
RaymondMouthaan Oct 21, 2019
b87c8bb
Add openSSL (#157)
CTGControls Oct 29, 2019
fb0e4e6
add openssl to custom image, correct readme to say ssh rather than s…
Oct 29, 2019
4447187
Update README.md
RaymondMouthaan Oct 29, 2019
80e1c30
Squashed commit of the following:
Dec 18, 2019
a330d00
Merge remote-tracking branch 'origin/master' into dev
Dec 18, 2019
b296a51
new dual use healthcheck test
Dec 18, 2019
d1e1205
Fix healthcheck to read settings.js
Dec 18, 2019
d880c29
Update healthcheck.js
Dec 19, 2019
7af667b
Update README.md
Dec 19, 2019
cecf03e
Add debug mode start scripts (#165)
bartbutenaers Feb 9, 2020
91ce001
ignore cert check in healthcheck.
Feb 9, 2020
67123f4
Merge remote-tracking branch 'origin/master' into dev
May 1, 2020
db83df7
try label v6l for arm v6 (Pi0)
May 1, 2020
3219e8a
revert changes to arm v6 - as patch had no effect.
May 1, 2020
6ab0525
[skip travis] change perms to allow openshift to load more easily
May 1, 2020
cf9b132
Update README.md
dceejay May 1, 2020
4b6f7bd
permissions update for openshift
May 10, 2020
12c8b67
and add cache to entrypoint
May 10, 2020
15fb05c
add no-fund to builds to suppress messages, add healthcheck to readme…
Jul 1, 2020
b67f077
update readme to 1.1.0 [skip travis]
Jul 1, 2020
0590d67
Merge branch 'master' into dev
Jul 1, 2020
d18f6e1
removing VOLUME declaration for test and add debian build to custom
Sep 5, 2020
8a38696
Remove volume - add words to docs to make using external volume more …
dceejay Sep 15, 2020
1e075c7
Tone down warning comment to allow for named volumes.
Sep 16, 2020
a9091ef
bump for 1.2.0-beta.1
Oct 1, 2020
d465089
Remove --link option as is deprecated (#201)
binnes Oct 1, 2020
96a4d86
Merge branch 'master' into dev
dceejay Oct 2, 2020
b6546c7
Merge remote-tracking branch 'origin/master' into dev
Oct 2, 2020
0d97870
Bump readme docs to 1.2
Oct 2, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
160 changes: 81 additions & 79 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
This project describes some of the many ways Node-RED can be run under Docker and has support for multiple architectures (amd64, arm32v6, arm32v7, arm64v8, i386 and s390x).
Some basic familiarity with Docker and the [Docker Command Line](https://docs.docker.com/engine/reference/commandline/cli/) is assumed.

**Note**: In version 1.2 we removed the named VOLUME from the build. It should not affect many users - but the details are [here](volumechanges).

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/).

Previous 0.20.x versions are still available at https://hub.docker.com/r/nodered/node-red-docker.
Expand All @@ -24,25 +26,25 @@ 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 v1.1.3
nodered/node-red - the image to base it on - currently Node-RED v1.2.0


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

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

10 Jul 12:57:10 - [info] Node-RED version: v1.1.3
10 Jul 12:57:10 - [info] Node.js version: v10.21.0
10 Jul 12:57:10 - [info] Linux 4.9.184-linuxkit x64 LE
10 Jul 12:57:11 - [info] Loading palette nodes
10 Jul 12:57:16 - [info] Settings file : /data/settings.js
10 Jul 12:57:16 - [info] Context store : 'default' [module=memory]
10 Jul 12:57:16 - [info] User directory : /data
10 Jul 12:57:16 - [warn] Projects disabled : editorTheme.projects.enabled=false
10 Jul 12:57:16 - [info] Flows file : /data/flows.json
10 Jul 12:57:16 - [info] Creating new flow file
10 Jul 12:57:17 - [warn]
10 Oct 12:57:10 - [info] Node-RED version: v1.2.0
10 Oct 12:57:10 - [info] Node.js version: v10.22.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
10 Oct 12:57:16 - [info] Context store : 'default' [module=memory]
10 Oct 12:57:16 - [info] User directory : /data
10 Oct 12:57:16 - [warn] Projects disabled : editorTheme.projects.enabled=false
10 Oct 12:57:16 - [info] Flows file : /data/flows.json
10 Oct 12:57:16 - [info] Creating new flow file
10 Oct 12:57:17 - [warn]

---------------------------------------------------------------------
Your flow credentials file is encrypted using a system-generated key.
Expand All @@ -56,9 +58,9 @@ Running that command should give a terminal window with a running instance of No
file using your chosen key the next time you deploy a change.
---------------------------------------------------------------------

10 Jul 12:57:17 - [info] Starting flows
10 Jul 12:57:17 - [info] Started flows
10 Jul 12:57:17 - [info] Server now running at http://127.0.0.1:1880/
10 Oct 12:57:17 - [info] Starting flows
10 Oct 12:57:17 - [info] Started flows
10 Oct 12:57:17 - [info] Server now running at http://127.0.0.1:1880/

[...]

Expand Down Expand Up @@ -112,36 +114,36 @@ The following table shows the variety of provided Node-RED images.

| **Tag** |**Node**| **Arch** | **Python** |**Dev**| **Base Image** |
|----------------------------|--------|----------|------------|-------|------------------------|
| 1.1.3-10-amd64 | 10 | amd64 | 2.x 3.x | yes | amd64/node:10-alpine |
| 1.1.3-10-arm32v6 | 10 | arm32v6 | 2.x 3.x | yes | arm32v6/node:10-alpine |
| 1.1.3-10-arm32v7 | 10 | arm32v7 | 2.x 3.x | yes | arm32v7/node:10-alpine |
| 1.1.3-10-arm64v8 | 10 | arm64v8 | 2.x 3.x | yes | arm64v8/node:10-alpine |
| 1.1.3-10-s390x | 10 | s390x | 2.x 3.x | yes | s390x/node:10-alpine |
| 1.1.3-10-i386 | 10 | i386 | 2.x 3.x | yes | i386/node:10-alpine |
| 1.2.0-10-amd64 | 10 | amd64 | 2.x 3.x | yes | amd64/node:10-alpine |
| 1.2.0-10-arm32v6 | 10 | arm32v6 | 2.x 3.x | yes | arm32v6/node:10-alpine |
| 1.2.0-10-arm32v7 | 10 | arm32v7 | 2.x 3.x | yes | arm32v7/node:10-alpine |
| 1.2.0-10-arm64v8 | 10 | arm64v8 | 2.x 3.x | yes | arm64v8/node:10-alpine |
| 1.2.0-10-s390x | 10 | s390x | 2.x 3.x | yes | s390x/node:10-alpine |
| 1.2.0-10-i386 | 10 | i386 | 2.x 3.x | yes | i386/node:10-alpine |
| | | | | | |
| 1.1.3-10-minimal-amd64 | 10 | amd64 | no | no | amd64/node:10-alpine |
| 1.1.3-10-minimal-arm32v6 | 10 | arm32v6 | no | no | arm32v6/node:10-alpine |
| 1.1.3-10-minimal-arm32v7 | 10 | arm32v7 | no | no | arm32v7/node:10-alpine |
| 1.1.3-10-minimal-arm64v8 | 10 | arm64v8 | no | no | arm64v8/node:10-alpine |
| 1.1.3-10-minimal-s390x | 10 | s390x | no | no | s390x/node:10-alpine |
| 1.1.3-10-minimal-i386 | 10 | i386 | no | no | i386/node:10-alpine |
| 1.2.0-10-minimal-amd64 | 10 | amd64 | no | no | amd64/node:10-alpine |
| 1.2.0-10-minimal-arm32v6 | 10 | arm32v6 | no | no | arm32v6/node:10-alpine |
| 1.2.0-10-minimal-arm32v7 | 10 | arm32v7 | no | no | arm32v7/node:10-alpine |
| 1.2.0-10-minimal-arm64v8 | 10 | arm64v8 | no | no | arm64v8/node:10-alpine |
| 1.2.0-10-minimal-s390x | 10 | s390x | no | no | s390x/node:10-alpine |
| 1.2.0-10-minimal-i386 | 10 | i386 | no | no | i386/node:10-alpine |


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

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

Expand All @@ -150,53 +152,53 @@ The following table shows the provided Manifest Lists.

| **Tag** | **Node-RED Base Image** |
|----------------------------------------|--------------------------------------------|
| latest, 1.1.3, | nodered/node-red:1.1.3-10-amd64 |
| latest-10, 1.1.3-10 | nodered/node-red:1.1.3-10-arm32v6 |
| | nodered/node-red:1.1.3-10-arm32v7 |
| | nodered/node-red:1.1.3-10-arm64v8 |
| | nodered/node-red:1.1.3-10-s390x |
| | nodered/node-red:1.1.3-10-i386 |
| latest, 1.2.0, | nodered/node-red:1.2.0-10-amd64 |
| latest-10, 1.2.0-10 | nodered/node-red:1.2.0-10-arm32v6 |
| | nodered/node-red:1.2.0-10-arm32v7 |
| | nodered/node-red:1.2.0-10-arm64v8 |
| | nodered/node-red:1.2.0-10-s390x |
| | nodered/node-red:1.2.0-10-i386 |
| | |
| latest-minimal, 1.1.3-minimal, | nodered/node-red:1.1.3-10-amd64-minimal |
| latest-10-minimal, 1.1.3-10-minimal | nodered/node-red:1.1.3-10-arm32v6-minimal |
| | nodered/node-red:1.1.3-10-arm32v7-minimal |
| | nodered/node-red:1.1.3-10-arm64v8-minimal |
| | nodered/node-red:1.1.3-10-s390x-minimal |
| | nodered/node-red:1.1.3-10-i386-minimal |
| latest-minimal, 1.2.0-minimal, | nodered/node-red:1.2.0-10-amd64-minimal |
| latest-10-minimal, 1.2.0-10-minimal | nodered/node-red:1.2.0-10-arm32v6-minimal |
| | nodered/node-red:1.2.0-10-arm32v7-minimal |
| | nodered/node-red:1.2.0-10-arm64v8-minimal |
| | nodered/node-red:1.2.0-10-s390x-minimal |
| | nodered/node-red:1.2.0-10-i386-minimal |

| **Tag** | **Node-RED Base Image** |
|----------------------------------------|--------------------------------------------|
| latest-12, 1.1.3-12 | nodered/node-red:1.1.3-12-amd64 |
| | nodered/node-red:1.1.3-12-arm32v6 |
| | nodered/node-red:1.1.3-12-arm32v7 |
| | nodered/node-red:1.1.3-12-arm64v8 |
| | nodered/node-red:1.1.3-12-s390x |
| | nodered/node-red:1.1.3-12-i386 |
| latest-12, 1.2.0-12 | nodered/node-red:1.2.0-12-amd64 |
| | nodered/node-red:1.2.0-12-arm32v6 |
| | nodered/node-red:1.2.0-12-arm32v7 |
| | nodered/node-red:1.2.0-12-arm64v8 |
| | nodered/node-red:1.2.0-12-s390x |
| | nodered/node-red:1.2.0-12-i386 |
| | |
| latest-12-minimal, 1.1.3-12-minimal | nodered/node-red:1.1.3-12-amd64-minimal |
| | nodered/node-red:1.1.3-12-arm32v6-minimal |
| | nodered/node-red:1.1.3-12-arm32v7-minimal |
| | nodered/node-red:1.1.3-12-arm64v8-minimal |
| | nodered/node-red:1.1.3-12-s390x-minimal |
| | nodered/node-red:1.1.3-12-i386-minimal |
| latest-12-minimal, 1.2.0-12-minimal | nodered/node-red:1.2.0-12-amd64-minimal |
| | nodered/node-red:1.2.0-12-arm32v6-minimal |
| | nodered/node-red:1.2.0-12-arm32v7-minimal |
| | nodered/node-red:1.2.0-12-arm64v8-minimal |
| | nodered/node-red:1.2.0-12-s390x-minimal |
| | nodered/node-red:1.2.0-12-i386-minimal |

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

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 `1.1.3-10-arm32v7`), 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 `1.2.0-10-arm32v7`), 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 (`1.1.3-10-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 (`1.2.0-10-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.

**Note**: Currently there is a bug in Docker's architecture detection that fails for `arm32v6` - eg Raspberry Pi Zero or 1. For these devices you currently need to specify the full image tag, for example:
```
docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red:1.1.3-10-minimal-arm32v6
docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red:1.2.0-10-minimal-arm32v6

```

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

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

Expand Down Expand Up @@ -384,11 +386,11 @@ This tool assumes Node-RED is available at the following address

Refreshing the browser page should now reveal the newly added node in the palette.

### Node-RED Commands from the host
### Node-RED Commands from the host

Admin commands can also be accessed without installing npm or the
node-red-admin tool on the host machine. Simply prepend your command
with "npx" and apply it to the container - e.g
with "npx" and apply it to the container - e.g

$ docker exec -it mynodered npx node-red admin hash-pw

Expand Down Expand Up @@ -461,7 +463,7 @@ Then run nodered docker, also added to the same bridge

docker run -itd -p 1880:1880 --network iot --name mynodered nodered/node-red

containers on the same user-defined bridge can take advantage of the built in name resolution provided by the bridge and use the container name (specified using the **--name** option) as the target hostname.
containers on the same user-defined bridge can take advantage of the built in name resolution provided by the bridge and use the container name (specified using the **--name** option) as the target hostname.


In the above example the broker can be reached from the Node-RED application using hostname *mybroker*.
Expand Down Expand Up @@ -520,7 +522,7 @@ Let's dissect both commands:
-it - attach a terminal session so we can see what is going on
-p 1880:1880 - connect local port 1880 to the exposed internal port 1880
-p 9229:9229 - connect local port 9229 to the exposed internal port 9229 (for debugger communication)
-v node_red_data:/data - mount the internal /data to the host mode_red_data directory
-v node_red_data:/data - mount the internal /data to the host mode_red_data directory
--name mynodered - give this machine a friendly local name
--entrypoint npm - overwrite the default entrypoint (which would run the *'start'* script)
nodered/node-red - the image to base it on - currently Node-RED v1.1.0
Expand All @@ -530,7 +532,7 @@ Let's dissect both commands:

## Common Issues and Hints

Here is a list of common issues users have reported with possible solutions.
Here is a list of common issues users have reported with possible solutions.

<br>

Expand All @@ -545,11 +547,11 @@ If you are seeing *permission denied* errors opening files or accessing host dev
docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered -u root nodered/node-red
```

__References:__
__References:__

https://github.com/node-red/node-red/issues/15
https://github.com/node-red/node-red/issues/15

https://github.com/node-red/node-red/issues/8
https://github.com/node-red/node-red/issues/8

<br>

Expand All @@ -560,9 +562,9 @@ If you want to access a device from the host inside the container, e.g. serial p
```
docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered --device=/dev/ttyACM0 nodered/node-red
```
__References:__
__References:__

https://github.com/node-red/node-red/issues/15
https://github.com/node-red/node-red/issues/15

<br>

Expand All @@ -574,8 +576,8 @@ If you want to modify the default timezone, use the TZ environment variable with
docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered -e TZ=Europe/London nodered/node-red
```

__References:__
__References:__

https://groups.google.com/forum/#!topic/node-red/ieo5IVFAo2o
https://groups.google.com/forum/#!topic/node-red/ieo5IVFAo2o

<br>
Loading