I am trying to use MRL with Docker (Swarm). I started by creating a cluster in this form => raspberry1 (manager), raspberry2 (worker), pcWindow (worker). I manage to create an image that initializes the WebGui service on my raspi1 (manager). I think, for example, to initialize the ProgramAB service on one worker and LocalSpeech on another. The idea is to outsource the heavy services for the raspberry on the robot to an external PC (or more) to handle certain tasks and replicate some services on other workers in case of failure or overheating. The problem is that I do not know how to connect my different instances (services) between it.


4 years 7 months ago

Distributed MRL stuff, is cool.  But why would you bother with docker?  just install MRL on 2 machines and start it up. 

Seems like if you're in a docker container, you're going to have a lot of problems access hardware directly as is often needed with various JNI things.  I just don't know how USB ports and audio line devices get exposed through a docker container...


Yes, I am already trying to start an instance on each raspi and pc and try a communication with RemoteAdapter, but I have a lot of problems. As tab duplication has service creation

So,  I think Docker will only make things more complicated and confusing for you.  I really wouldn't recommend trying to use that mostly because it won't solve the problem that you're trying to solve, which is having distributed services in MRL.

So..  I think what you want to start with is having startup scripts for each "node" in your cluster.  Each node should start the services that you want running there.. and should also probably start the remote adapater so that the MRL instances can start publishing and subscribing to data on the remote nodes.

If you're getting into a problem where something isn't working,  I would recommend sending a "no worky" (this sends your log files. and also posting the scripts that you are using to start each of the nodes so that we might have a chance in reproducing your issue.

good luck!

Ok, I will follow your advice and work with startup scripts. Nothing lost, it will have at least allowed me to have a little fun with Docker. thank you


4 years 7 months ago

In reply to by cholet852

There is a bug in the remote adapter service.

If you start any service after establishing a remote adapter connection between two instance of MRL, it will go into uncontrollable service replication on both the host and the client.

This include creating a second connection with a second client.

The bug is very reproducible however once the replication starts, you can't stop it and will result in a system crash. makes it very hard to send a no-worky on it.