Error: 1/1: no suitable node (unsupported platform on 2 nodes

Hello,

I built a small swarm for my IoT projects and unable to deploy that service:

sudo docker service create \
  --name="mosquitto" \
  -p 1883:1883 \
  --mount 'type=volume,src=mosquitto_config,dst=/mosquitto/config,volume-driver=local'  \
  --mount 'type=volume,src=mosquitto_data,dst=/mosquitto/data,volume-driver=local'  \
robotany/mosquitto-rpi

I get that error 1/1: no suitable node (unsupported platform on 2 nodes

When I run the same image as a container it is working properly.
If I inspect the service after that error I see that the architecture is set to amd64, but the image is compiled for `armhf: https://hub.docker.com/r/robotany/mosquitto-rpi/

Who can help me out here? I cannot reproduce the error for other images like: https://hub.docker.com/r/lsioarmhf/mariadb/

Thanks in Advance!

Hi,

You don’t mention who created the robotany/mosquitto-rpi image, nor how they created. Perhaps it’s someone other than yourself, and those facts are unknowable. From the problem description, it sounds like the manifest list returned is either null, or the default, and therefore, the equivalent “docker pull” is defaulting to x64.

If you can, do have a look at this article on multi-architecture support, and especially the command, which is used the create and maintain multi-architecture images and manifest lists in registries such as the hub. This might be helpful in troubleshooting the problem, and or updating the hub image appropriately.

I will. I’m just wondering why the same image is working as container, but not working as service.

EDIT: It is working if I use --no-resolve-image