Closed aissam-en closed 3 months ago
Hi. I assume that Ditto will not run on docker swarm out of the box. I used it 7 years ago or so and back then it required a special DNS based service discovery of the Ditto cluster nodes.
Why would you use docker swarm when just locally starting it on a windows machine?
So, there is no chance to run Ditto on docker swarm.
And regarding why I am running Ditto in Docker Swarm locally : I ran Ditto locally with regular Docker during development without issues. after finishing development, I tried deploying it on a production server with Docker Swarm, and I faced that issue, so, to troubleshoot it, I set Ditto up locally in docker swarm.
So, there is no chance to run Ditto on docker swarm.
Of course there is. I just can't provide you the exact steps how to do it.
In a former company where I worked, we ran it in Docker swarm.
I see in your docker-compose.yml you have BIND_HOSTNAME=0.0.0.0 You can try to have the specific service name. For example: BIND_HOSTNAME=policies
This way the pekko-dns discovery method may actually be used correctly:
https://pekko.apache.org/docs/pekko/current/discovery/index.html#discovery-method-dns
Challenges Running Eclipse Ditto on Docker Swarm
I'm trying to run Eclipse Ditto on Docker Swarm, initially, I was able to successfully run Ditto using the provided docker-compose.yml file in Docker (not Swarm mode) without modifying the nginx.conf file.
I made some adjustments to the
docker-compose.yml
file to work in Docker Swarm :restart: always
;healthcheck
section;volumes
for theswagger-ui
service, since volumes are not be suitable for Swarm, I will configure it later;volumes
for thenginx
service withconfigs
, to mount nginx files;I'm encountering an issue where the
nginx
service is not recongizinggateway
service, here is its logs:the line 44 from
nginx.conf
file :and when I send request from Postman, ex : GET http://localhost:8080/api/2/things/ with ditto:ditto in Authorization, I get this as output :
The nginx logs :
Additional Information:
The
docker-compose.yml
file : https://pastebin.com/nbKcXjDcThe services are runnig :
Inspect
ditto-net-swarm
network :The logs of
my_stack_gateway
: https://pastebin.com/LJrQX5Hw