emacs-lsp / lsp-docker

Scripts and configurations to leverage lsp-mode in docker environment
GNU General Public License v3.0
243 stars 34 forks source link

Static container name stops other language servers from starting #6

Closed rnikoopour closed 4 years ago

rnikoopour commented 4 years ago

Description The docker container is started with a static name. This prevents more than one container running.

Solution Change lsp-docker-launch-new-container to inject a random number into the container name:

(defun lsp-docker-launch-new-container (docker-container-name path-mappings docker-image-id server-command)
  (split-string
   (--doto (format "docker run --name %s --rm -i %s %s %s"
                   (format "%s-%d" docker-container-name (random 1000))
                   (->> path-mappings
                        (-map (-lambda ((path . docker-path))
                                (format "-v %s:%s" path docker-path)))
                        (s-join " "))
                   docker-image-id
                   server-command))
   " "))