Skip to content
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

nodered/node-red:3.0.0 does not run on raspberry pi / Raspbian #319

Closed
DanielWeigl opened this issue Jul 15, 2022 · 12 comments
Closed

nodered/node-red:3.0.0 does not run on raspberry pi / Raspbian #319

DanielWeigl opened this issue Jul 15, 2022 · 12 comments

Comments

@DanielWeigl
Copy link

DanielWeigl commented Jul 15, 2022

I updated my nodered on my RaspberryPi to latest and now it doe not does not run anymore:

Steps to reproduce:

docker run -it --rm --name mynodered nodered/node-red:3.0.0
#
# Fatal error in , line 0
# unreachable code
#
#
#
#FailureMessage Object: 0xbeab354c

Image info:

root@pi:~# docker inspect nodered/node-red:3.0.0
[
    {
        "Id": "sha256:1d1d06c13a3e74ab07b877fe64ce3206cc77f6f48511d353ab32456bd502a51e",
        "RepoTags": [
            "nodered/node-red:3.0.0",
            "nodered/node-red:latest"
        ],
        "RepoDigests": [
            "nodered/node-red@sha256:d3637803bcaeb8c53a3976c0db766f784ce1c9cb6eef759cf1d44f8b4ccf26a0"
        ],
        "Parent": "",
        "Comment": "buildkit.dockerfile.v0",
        "Created": "2022-07-14T09:42:12.65790837Z",
        "Container": "",
        "ContainerConfig": {
            "Hostname": "",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": null,
            "Cmd": null,
            "Image": "",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": null
        },
        "DockerVersion": "",
        "Author": "",
        "Config": {
            "Hostname": "",
            "Domainname": "",
            "User": "node-red",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "1880/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/src/node-red/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "NODE_VERSION=16.16.0",
                "YARN_VERSION=1.22.19",
                "NODE_RED_VERSION=v3.0.0",
                "NODE_PATH=/usr/src/node-red/node_modules:/data/node_modules",
                "FLOWS=flows.json"
            ],
            "Cmd": null,
            "Healthcheck": {
                "Test": [
                    "CMD-SHELL",
                    "node /healthcheck.js"
                ]
            },
            "Image": "",
            "Volumes": null,
            "WorkingDir": "/usr/src/node-red",
            "Entrypoint": [
                "npm",
                "--no-update-notifier",
                "--no-fund",
                "start",
                "--cache",
                "/data/.npm",
                "--",
                "--userDir",
                "/data"
            ],
            "OnBuild": null,
            "Labels": {
                "authors": "Dave Conway-Jones, Nick O'Leary, James Thomas, Raymond Mouthaan",
                "org.label-schema.arch": "",
                "org.label-schema.build-date": "2022-07-14T09:32:47Z",
                "org.label-schema.description": "Low-code programming for event-driven applications.",
                "org.label-schema.docker.dockerfile": ".docker/Dockerfile.alpine",
                "org.label-schema.license": "Apache-2.0",
                "org.label-schema.name": "Node-RED",
                "org.label-schema.url": "https://nodered.org",
                "org.label-schema.vcs-ref": "",
                "org.label-schema.vcs-type": "Git",
                "org.label-schema.vcs-url": "https://github.com/node-red/node-red-docker",
                "org.label-schema.version": "3.0.0"
            }
        },
        "Architecture": "arm",
        "Variant": "v7",
        "Os": "linux",
        "Size": 407064728,
        "VirtualSize": 407064728,
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/8ef58d13cc1afc3e57faa78332351607463af122b76f8f239080dfbd9578f489/diff:/var/lib/docker/overlay2/3b1d035a802cab261fef8293e9f2a931314467798736c78f58ec67409636fa6e/diff:/var/lib/docker/overlay2/c00a623ae87be7931a0a09e4b6936efa1dfd0ed7c81cd968c99e01935b034f3e/diff:/var/lib/docker/overlay2/26692a34d638a3f70e915f356e9430fb64e3a5fce491a8f9f84eac1b91b90ea9/diff:/var/lib/docker/overlay2/8c191064bdba31d91df88974ebeb0ff308d716dc1236a1a972f4ac5e33c39510/diff:/var/lib/docker/overlay2/81cbf3878b486738f3d4601c4d0c9115e180a01d9fc51acf9dad8bd23bda99cb/diff:/var/lib/docker/overlay2/8807b165b0d917cee7361a50d1af00f9b20fd5c894bae01de76c2ac5cbcfa9b3/diff:/var/lib/docker/overlay2/b3a8092fed0381c89960c9fe30191b48d582c30734645375298a36f98b4ea520/diff:/var/lib/docker/overlay2/5185b71d052934dd4ba0ebba65f3dc970f8a58e71f0b36efa723fe9890c2247f/diff:/var/lib/docker/overlay2/93c52fc7c94f619dba3a6ba54ef03c3533124a815d1a412262de21d3ed1a98f5/diff:/var/lib/docker/overlay2/170dd0f12715d472b62c16a4e57fcc36352ba21e7c29d001c526f49c70bd3c7d/diff:/var/lib/docker/overlay2/ee7438e6ce721a073090713a78e3c4153497a9dd030b12a870f385369e0b97f8/diff:/var/lib/docker/overlay2/026c9f5f05a5e9a931c2192ffe4eb5d05ac5fba65b60490403391885d44433ac/diff",
                "MergedDir": "/var/lib/docker/overlay2/054e33284e2ed7b3eba053084c072fe6d89617ea80cbca19ceb07159edebb315/merged",
                "UpperDir": "/var/lib/docker/overlay2/054e33284e2ed7b3eba053084c072fe6d89617ea80cbca19ceb07159edebb315/diff",
                "WorkDir": "/var/lib/docker/overlay2/054e33284e2ed7b3eba053084c072fe6d89617ea80cbca19ceb07159edebb315/work"
            },
            "Name": "overlay2"
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:37ac00f8cd049c57320efaf3b854cad516368475d1ebf3a497756a8a4200b849",
                "sha256:c52a3ff0907fd4edcd0a5fb5f2b41fcf83e8a1ccf00da5351adb82823fc10bd9",
                "sha256:db1d352044d8937afd9f250b2a6f1f03f788c3fa7d9d9472bf5f14804c9448ed",
                "sha256:dfe9050bb28ad8eb22dd1be9b159b0876ee2ed25629a0ccf22f60d237bbf1fee",
                "sha256:ad2df8251a98db98440bde5a3d6e797141ccb3d1917148639503b620749624bb",
                "sha256:8e108dc112c183728cf813780fab0aa39a90f2aa872a5c61eab1592600b269a5",
                "sha256:72f61ed8a1850b668ebc0a9f5aae0f064a8d9cde1f93a89922d891b2eab98b23",
                "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
                "sha256:98b0ba369e1d67db91153a78ad96f52007672a6790061c8f99ad0f150ea753ab",
                "sha256:c8acb145bca8f6f152e6bc5c2f857fc015f13b00c1527b2d583cfeacef072ba7",
                "sha256:72fc824842bf42bd18d4b6fc806d285267fd381a2693f947cb5cb1743334c336",
                "sha256:2d0c20f9e50f7b2e97fd033a24870d27895d9681f13d13db428606670273d816",
                "sha256:8472fb094bdb7c97391734f675610336bbd10a5a37ffb414449ddae212dc67cf",
                "sha256:51782ba673f5c9a6fbf0d93919775c0314617a864cc3438feeb288ec093ca453"
            ]
        },
        "Metadata": {
            "LastTagTime": "0001-01-01T00:00:00Z"
        }
    }
]

System info:

root@pi:~# lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 10 (buster)
Release:        10
Codename:       buster

root@pi:~# cat /proc/cpuinfo
processor       : 0
model name      : ARMv7 Processor rev 3 (v7l)
BogoMIPS        : 126.00
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xd08
CPU revision    : 3

processor       : 1
model name      : ARMv7 Processor rev 3 (v7l)
BogoMIPS        : 126.00
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xd08
CPU revision    : 3

processor       : 2
model name      : ARMv7 Processor rev 3 (v7l)
BogoMIPS        : 126.00
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xd08
CPU revision    : 3

processor       : 3
model name      : ARMv7 Processor rev 3 (v7l)
BogoMIPS        : 126.00
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xd08
CPU revision    : 3

Hardware        : BCM2711
Revision        : c03112
Serial          : xxx
Model           : Raspberry Pi 4 Model B Rev 1.2
@DanielWeigl
Copy link
Author

Same happens for node-red:3.0.0-18

root@pi:~# docker run -it --rm --name mynodered nodered/node-red:3.0.0-18
Unable to find image 'nodered/node-red:3.0.0-18' locally
3.0.0-18: Pulling from nodered/node-red
6366ba92f08e: Already exists 
480d0242e804: Pull complete 
e54759dcfc01: Pull complete 
1d417e2e963f: Pull complete 
06a5294c6966: Pull complete 
a1c1895c725c: Pull complete 
a829bea8b741: Pull complete 
4f4fb700ef54: Pull complete 
1b190ab5b65b: Pull complete 
346e545bd5a0: Pull complete 
4b43fe8f1963: Pull complete 
c467b9746df9: Pull complete 
f850124c1415: Pull complete 
8461b42bb579: Pull complete 
Digest: sha256:3ed2da1f95bb3fa1c9b69afd5b34297862bda50471750f13d447adb5104d8eb8
Status: Downloaded newer image for nodered/node-red:3.0.0-18

#
# Fatal error in , line 0
# unreachable code
#
#
#
#FailureMessage Object: 0xbe9b047c

But node-red:2.2.2 is still working:

root@pi:~# docker run -it --rm --name mynodered nodered/node-red:2.2.2
Unable to find image 'nodered/node-red:2.2.2' locally
2.2.2: Pulling from nodered/node-red
Digest: sha256:e131dcadfe9297fa8f24233d7ab65b9f116439c868b01cee4c18adef9d9db0a5
Status: Downloaded newer image for nodered/node-red:2.2.2

> [email protected] start /usr/src/node-red
> node $NODE_OPTIONS node_modules/node-red/red.js $FLOWS "--userDir" "/data"

15 Jul 12:50:45 - [info] 

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

15 Jul 12:50:45 - [info] Node-RED version: v2.2.2
15 Jul 12:50:45 - [info] Node.js  version: v14.18.2
15 Jul 12:50:45 - [info] Linux 5.10.103-v7l+ arm LE
15 Jul 12:50:46 - [info] Loading palette nodes
15 Jul 12:50:47 - [info] Settings file  : /data/settings.js
15 Jul 12:50:47 - [info] Context store  : 'default' [module=memory]
15 Jul 12:50:47 - [info] User directory : /data
15 Jul 12:50:47 - [warn] Projects disabled : editorTheme.projects.enabled=false
15 Jul 12:50:47 - [info] Flows file     : /data/flows.json
15 Jul 12:50:47 - [warn] 
...
15 Jul 12:50:47 - [info] Server now running at http://127.0.0.1:1880/
15 Jul 12:50:47 - [info] Starting flows
15 Jul 12:50:47 - [info] Started flows

@hardillb
Copy link
Member

What version of docker are you running? also can you confirm you are running a 32bit version of the Raspberry Pi OS?

@hardillb
Copy link
Member

Probable duplicate of #296

@snkku
Copy link

snkku commented Jul 15, 2022

same problem after update...
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 10 (buster)
Release: 10
Codename: buster
Linux raspberrypi 5.10.103-v7l+ #1529 SMP Tue Mar 8 12:24:00 GMT 2022 armv7l GNU/Linux
Docker version 20.10.17, build 100c701

@hardillb
Copy link
Member

Does adding --security-opt=seccomp=unconfined to the docker run command work?

@snkku
Copy link

snkku commented Jul 15, 2022

Does adding --security-opt=seccomp=unconfined to the docker run command work?

work! thanks!

@hardillb
Copy link
Member

@DanielWeigl & @snkku Can you run the following please:

scmp_sys_resolver -a arm clock_gettime64

And update with the output and also see if you can work out what version of libseccomp you have installed

Also check for any OS updates

@Paraphraser
Copy link

I don't know if this will be useful but the screen shot is from a Pi4 running Buster with libseccomp2 patched. Shows 3.0.0-14 starting up OK (via docker-compose).

See libseccomp2 patch for Buster.

601B0083-78CC-4487-8740-C3E614FAF356

@DanielWeigl
Copy link
Author

What version of docker are you running?

pi@pi:~ $ docker --version
Docker version 20.10.17, build 100c701

also can you confirm you are running a 32bit version of the Raspberry Pi OS?

yes, its 32bit:

pi@pi:~ $ getconf LONG_BIT
32
pi@pi:~ $ uname -a
Linux pi 5.10.103-v7l+ #1529 SMP Tue Mar 8 12:24:00 GMT 2022 armv7l GNU/Linux

It still fails after installing seccompt and setting clock_gettime64

pi@pi:~ $ sudo apt install seccomp
Reading package lists... Done
Suggested packages:
  libseccomp-dev
The following NEW packages will be installed:
  seccomp
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 31.5 kB of archives.
After this operation, 114 kB of additional disk space will be used.
Get:1 http://debian.anexia.at/raspbian/raspbian buster/main armhf seccomp armhf 2.3.3-4 [31.5 kB]
Fetched 31.5 kB in 1s (48.0 kB/s)
Selecting previously unselected package seccomp.
Preparing to unpack .../seccomp_2.3.3-4_armhf.deb ...
Unpacking seccomp (2.3.3-4) ...
Setting up seccomp (2.3.3-4) ...
Processing triggers for man-db (2.8.5-2) ...

pi@pi:~ $ sudo scmp_sys_resolver -a arm clock_gettime64
-1

pi@pi:~ $ docker run -it --rm --name mynodered nodered/node-red:latest
#
# Fatal error in , line 0
# unreachable code
#
#
#
#FailureMessage Object: 0xbe87754c

But this works, as already noted by others:

pi@pi:~ $ docker run -it --rm --name mynodered --security-opt=seccomp=unconfined nodered/node-red:latest

> [email protected] start
> node $NODE_OPTIONS node_modules/node-red/red.js $FLOWS "--userDir" "/data"

18 Jul 11:22:48 - [info] 

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

18 Jul 11:22:48 - [info] Node-RED version: v3.0.0
18 Jul 11:22:48 - [info] Node.js  version: v16.16.0
18 Jul 11:22:48 - [info] Linux 5.10.103-v7l+ arm LE
18 Jul 11:22:49 - [info] Loading palette nodes
18 Jul 11:22:52 - [info] Settings file  : /data/settings.js
18 Jul 11:22:52 - [info] Context store  : 'default' [module=memory]
18 Jul 11:22:52 - [info] User directory : /data
18 Jul 11:22:52 - [warn] Projects disabled : editorTheme.projects.enabled=false
18 Jul 11:22:52 - [info] Flows file     : /data/flows.json
...
18 Jul 11:22:52 - [info] Server now running at http://127.0.0.1:1880/
18 Jul 11:22:52 - [warn] Encrypted credentials not found
18 Jul 11:22:52 - [info] Starting flows
18 Jul 11:22:52 - [info] Started flows
...

@hardillb
Copy link
Member

sudo scmp_sys_resolver -a arm clock_gettime64 is not meant to be a fix, it is a test to see if seccomp supports 64bit time.

The correct solution is upgrade to Bullseye, install the back port mentioned above or run with --security-opt=seccomp=unconfined

@DanielWeigl
Copy link
Author

Ah, thx - i see.

After installing seccomp2 via

sudo apt-key adv --keyserver hkps://keyserver.ubuntu.com:443 --recv-keys 04EE7237B7D453EC 648ACFD622F3D138

echo "deb http://httpredir.debian.org/debian buster-backports main contrib non-free" | sudo tee -a "/etc/apt/sources.list.d/debian-backports.list"

sudo apt update

sudo apt install libseccomp2 -t buster-backports

it works - so i guess its nothing you can fix on your side, or? If so, we can close this issue.

Or maybe at least a hint in the main readme so its easier to find?

@edm00se
Copy link

edm00se commented Sep 14, 2022

@hardillb it may be worth pinning this issue in GitHub to hopefully speed up any others finding the fix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants