Having dug a little further into it it does seem to be a network setup issue in the vicinity of the TX1.
If I create a quiescent container on each worker using the following compose fragment:
pub:
image: ros:melodic-ros-core
environment:
- “ROS_MASTER_URI=http://ros-master:11311”
- “ROS_HOSTNAME=pub”
command: sleep 999999
deploy:
placement:
constraints: [node.hostname == tegra-ubuntu]
pub2:
image: ros:melodic-ros-core
environment:
- “ROS_MASTER_URI=http://ros-master:11311”
- “ROS_HOSTNAME=pub2”
command: sleep 999999
deploy:
placement:
constraints: [node.hostname == geoff-OldMacBook]
… and then shell in to each by docker exec’ing /bin/bash I find that:
- ros-master resolves to 10.0.22.8 on both workers
- “ping ros-master” works correctly on both workers
- “curl http://ros-master:11311” succeeds on the other worker but gets connection refused on the TX1
Intriguing!,
Geoff
PS. ros-master is another container in the swarm running on the manager node