andnils / measure

A project template using clojure and es6/react
2 stars 1 forks source link

nrepl on docker dev environment #18

Open andnils opened 6 years ago

andnils commented 6 years ago

Make sure emacs (or similar) can connect to repl on docker container.

andnils commented 6 years ago

Add EXPOSE for nrepl port in docker-compose

jherrlin commented 6 years ago

Fasen, söker runt för att hitta svar på detta men hittar inget som verkar vettigt. Inget som jag förstår mig på iaf. Som jag tänker det så startar man upp server processen och så säger man i någon config att -"Hej här har vi en TCP/IP port som du kan ansluta en remote repl till." Tänker att det då är en rad i typ project.clj

jherrlin commented 6 years ago

Fick till slut till det.

Ändrade till command: lein repl :headless :host "0.0.0.0" :port 4100 i docker-compose och la till så att port 4100 är öppen.

Sedan ja jag till en snippet i min Emacs conf:

(defun get-mclojure-ip ()
  (replace-regexp-in-string
   "\n$" ""
   (shell-command-to-string "docker inspect mclojure | grep IPAddress | grep -oE '\\b([0-9]{1,3}\.){3}[0-9]{1,3}\\b'")))

(setq cider-known-endpoints `(("mclojure" ,(get-mclojure-ip) "4100")))

Sedan använde jag M-x cider-connect för att ansluta till nrepl.

andnils commented 6 years ago

Ser bra ut ju! Kan du koppla upp dig och köra:

user> (go)

?

Kom på en grej: när CIDER startar en repl själv, så injectar den lite middleware i din leiningen-profil. Dom bitarna får man inte med när man ansluter till en redan startad REPL. Så jag antar att du såg något meddelande i stil med:

WARNING: CIDER's version (0.16.0) does not match cider-nrepl's version (nil). Things will break!

Finns mer info här: http://cider.readthedocs.io/en/latest/installation/#ciders-nrepl-middleware

jherrlin commented 6 years ago

Jag får ett exception på (go).

Precis, detta får jag när jag ansluter.

WARNING: CIDER's version (0.17.0-snapshot) does not match cider-nrepl's version (nil). Things will break!
         More information.
user> 
jherrlin commented 6 years ago

Efter att jag lagt till cider-nrepl till plugins i projektet:

  :plugins [[lein-pprint "1.2.0"]
            [cider/cider-nrepl "0.16.0"]]

och att ha pekat på melpa-stable för cider så kan jag ansluta utan att få fel.