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

Would this work on an older version of a raspberry pi? #27

Closed
Moosdijk opened this issue Oct 30, 2019 · 19 comments
Closed

Would this work on an older version of a raspberry pi? #27

Moosdijk opened this issue Oct 30, 2019 · 19 comments

Comments

@Moosdijk
Copy link

Hi!

I came across this awesome project through Andreas Spiess' video and I was wondering if I can use this on an older 2B board.

It would really help me since I don't have to go out and buy a new one.

Thanks!

@Paulf007
Copy link
Contributor

Only one way to know, give it a go and report :)

@gcgarner
Copy link
Owner

I dont know if it will run. As @Paulf007 says, please let us know and I can put a comment in the README for others to see.

In the past is did try installing docker on a Zero W and it just failed. It doesnt have the CPU power or the RAM anyways

@Moosdijk
Copy link
Author

When I get the chance this weekend, I'll try it out and let you know.
From what I can quickly google, it would work.

@olonsoft
Copy link

I 've tried on a raspberry pi 1 model B rev. 2 and I got the following errors:

pi@raspberrypi:~ $ docker-compose up -d
Traceback (most recent call last):
  File "/usr/bin/docker-compose", line 11, in <module>
    load_entry_point('docker-compose==1.21.0', 'console_scripts', 'docker-compose')()
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 489, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2793, in load_entry_point
    return ep.load()
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2411, in load
    return self.resolve()
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2417, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 47, in <module>
    from .docopt_command import DocoptDispatcher
  File "/usr/lib/python3/dist-packages/compose/cli/docopt_command.py", line 6, in <module>
    from docopt import docopt
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 724, in exec_module
  File "<frozen importlib._bootstrap_external>", line 857, in get_code
  File "<frozen importlib._bootstrap_external>", line 525, in _compile_bytecode
ValueError: bad marshal data (unknown type code)

@gcgarner
Copy link
Owner

@olonsoft it may be that its just docker-compose that is incompatible. There could be a workaround. could you run docker run -d -p 1880:1880 --name mynodered nodered/node-red then see if you can navigate to :1880 in your browser.

docker-compose is by far the easiest way to go however if the above works then what i can do is build a script from the menu for the older devices that achieves the same goal.

@olonsoft
Copy link

This is what I got:

pi@raspberrypi:~ $ docker run -d -p 1880:1880 --name mynodered nodered/node-red
Unable to find image 'nodered/node-red:latest' locally
latest: Pulling from nodered/node-red
856f4240f8db: Pull complete
0ea0270eaa0b: Pull complete
6067b7ad6974: Extracting  1.407MB/1.407MB
68eb5a3384e3: Download complete
49f0e44a8553: Download complete
3390ee6654fc: Download complete
869276699c9f: Download complete
607ecd1ae963: Download complete
23e2fa3763b4: Download complete
858a08225bb2: Download complete
docker: failed to register layer: error creating overlay mount to /var/lib/docker/overlay2/5c3f1a27e38c154577370c7e8243297305a9cb7e0c6c5b8828b7e6aabff1014f/merged: invalid argument.
See 'docker run --help'.

@whatsupskip
Copy link

I dont know if it will run. As @Paulf007 says, please let us know and I can put a comment in the README for others to see.

In the past is did try installing docker on a Zero W and it just failed. It doesnt have the CPU power or the RAM anyways

RPi Zero has a different version of the ARM processor, so it cannot run the same code. Processing power and RAM are secondary issues.

@gcgarner
Copy link
Owner

gcgarner commented Nov 1, 2019

@olonsoft Thanks for testing the additional instruction but it doesn't look like it will work. It may be related to what @whatsupskip said, probably a CPU version problem

@smadds
Copy link

smadds commented Nov 1, 2019

Just installed on a 3B and works fine on that

@olonsoft
Copy link

olonsoft commented Nov 1, 2019

I 've also installed on a 3B and works fine for me too

@gcgarner
Copy link
Owner

gcgarner commented Nov 4, 2019

This has been added to the README, closing issue

@gcgarner gcgarner closed this as completed Nov 4, 2019
@olonsoft
Copy link

Just an update:
I read here: https://hub.docker.com/r/nodered/node-red

Note: RaspberryPI Zero and 1 users (Arm6 cpu) will need to use the specific tag name to install due to an upstream docker bug in the architecture detection. For example :

docker run -it -p 1880:1880 --name mynodered nodered/node-red:1.0.1-10-minimal-arm32v6
for the minimal node 10 version.

So I tried the above command and I could get nodered run.
But everything is so slow that does not worth the effort.

@gcgarner
Copy link
Owner

That's interesting. I tried to install docker on a zero about 6 months ago and it wouldn't even install. However it maybe related to a debian 9 issue. TBH i didnt spend too much time.

If you can get it to run great however i have my reservations on running docker on the zero and the A. RAM is one of the concerns and they dont have a lot of it.

I got a new zerow the other day any my plan is to use it as remote GPIO for the nodered running on my Pi 4. Either that or just install native nodered an publish the data via mqtt to my main nodered

robertcsakany pushed a commit to robertcsakany/IOTstack that referenced this issue Apr 20, 2020
@tablatronix
Copy link

How can I change the nodered architecture in the scripts, so it works?
I am not seeing where to change the asset..

@tablatronix
Copy link

Is it this?

echo "FROM nodered/node-red:latest" >$nr_dfile

@tablatronix
Copy link

Looks like influx and grafana are crashing also, oh well

@Marooned-MB
Copy link

I know it's a closed issue but it can be found through search or Google so might be worth updating.
I have RPi B rev2 and I added 6 containers: portainer, nodered, influxdb, grafana, mosquitto, pihole
Only nodered and mosquito seems to be up and running (couldn't test mosquito, but Node-RED is up and running).
Error claims that ports are already taken which is surprising. Netstat before docker up does not confirm it.

pi@raspberrypi:~/IOTstack $ docker-compose up -d
Creating network "iotstack_default" with the default driver
Creating influxdb ...
Creating portainer ... error
Creating mosquitto ...
Creating influxdb  ... error
Creating grafana   ...
Creating nodered   ...

ERROR: for portainer  Cannot start service portainer: driver failed programming external connectivity on endpoint portainer (aeef24b4ec21f123de53f32a81ffd30df7957a0e61b1b2f89c1c374eea41cd6e): Bind for 0.0.0.0:9000 failed: port is already allocated

Creating grafana   ... error
 0.0.0.0:8086 failed: port is already allocated
Creating pihole    ... error
ERROR: for grafana  Cannot start service grafana: driver failed programming external connectivity on endpoint grafana (a2d86e051f3a5c8409849c9ab560cdc42a62e1d78976227a2c2d95b06f495031): Bind for 0.Creating mosquitto ... done

ERROR: for pihole  Cannot start service pihole: driver failed programming external connectivity on endpoint pihole (a250dcba8d667da3705ef3ca76a9c8754c798d1b4fa758d61a56a6ace98c6dc4): Bind for 0.0.0Creating nodered   ... done

ERROR: for portainer  Cannot start service portainer: driver failed programming external connectivity on endpoint portainer (aeef24b4ec21f123de53f32a81ffd30df7957a0e61b1b2f89c1c374eea41cd6e): Bind for 0.0.0.0:9000 failed: port is already allocated

ERROR: for influxdb  Cannot start service influxdb: driver failed programming external connectivity on endpoint influxdb (32075afffcdd9b361a9abd78b60b986503335cc075e6afc9aef6b197c564b57e): Bind for 0.0.0.0:8086 failed: port is already allocated

ERROR: for grafana  Cannot start service grafana: driver failed programming external connectivity on endpoint grafana (a2d86e051f3a5c8409849c9ab560cdc42a62e1d78976227a2c2d95b06f495031): Bind for 0.0.0.0:3000 failed: port is already allocated

ERROR: for pihole  Cannot start service pihole: driver failed programming external connectivity on endpoint pihole (a250dcba8d667da3705ef3ca76a9c8754c798d1b4fa758d61a56a6ace98c6dc4): Bind for 0.0.0.0:8089 failed: port is already allocated
ERROR: Encountered errors while bringing up the project.

@tablatronix
Copy link

Yeah I gave up and bought a 4. i had better luck on older pis with peters script.

@Marooned-MB
Copy link

Looks like we are doomed if that quote is true:
Sadly, Pi 1 and Pi Zero use an armv6 CPU which isn't supported by the Docker binaries (and by most containers on Docker Hub). source

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

8 participants