The worker currently registers itself with the nameserver using its internal location, which causes problems (i.e., the worker is not accessible from outside) when the worker runs behind a NAT router. These scenario can happen when workers run within separate docker containers started without the --net=host option. After looking at the Pyro4 documentation [1], I think that the solution could be to add nathost and natport parameters to the Worker class, which would be passed to the Pyro4.core.Daemon object. This would ensure, that the worker process would register itself with the external address.
Hey there. Is there any progress in this issue? I would also be quite interested to run an optimization within several docker containers without using the --net option.
The worker currently registers itself with the nameserver using its internal location, which causes problems (i.e., the worker is not accessible from outside) when the worker runs behind a NAT router. These scenario can happen when workers run within separate docker containers started without the
--net=host
option. After looking at the Pyro4 documentation [1], I think that the solution could be to addnathost
andnatport
parameters to theWorker
class, which would be passed to thePyro4.core.Daemon
object. This would ensure, that the worker process would register itself with the external address.[1] https://pythonhosted.org/Pyro4/tipstricks.html#pyro-behind-a-nat-router-firewall