What if we're running multiple nodes in our swarm, and nginx ends up on a different node to the one running Collabora via docker-compose? Well, either constrain nginx to the same node as Collabora ( example below), or just launch an instance of Collabora on every node then. Now incoming requests to will hit Traefik, be forwarded to nginx ( wherever in the swarm it's running), and then to port 9980 on the same node that nginx is running on. We attach the necessary labels to the Nginx container to instruct Trafeik to setup a front/backend for collabora. We run a single swarmed Nginx instance, which forwards all requests to an upstream, with the target IP of the docker0 interface, on port 9980 ( the port exposed by the CODE container) We don't want to have to do this manually ( like a cave-man), so we engage in some trickery to allow us to still use our swarmed Traefik to terminate SSL. ![]() This presents another problem though - Docker Swarm with Traefik is superb at making all our stacks "just work" with ingress routing and LetsEncyrpt certificates. ![]() Using docker-compose will at least provide us with consistent and version-able configuration files. So we have to run Collabora itself in the next best thing to Docker swarm - a docker-compose stack. ![]() Docker-compose installed on your node(s) - this is a special case which needs to run outside of Docker SwarmÄue to the clever magic that Collabora does to present a "headless" LibreOffice UI to the browser, the CODE docker container requires system capabilities which cannot be granted under Docker Swarm ( specifically, MKNOD)."") you intend to use for LDAP Account Manager, pointed to your keepalived IP ![]()
0 Comments
Leave a Reply. |