Ich versuche Docker-compose zu verwenden, um meine zu verbinden clojure compojure app
mit einem rethinkdb
Behälter:Kupplung Compojure Anwendung mit rethinkdb und Docker-komponieren
Docker-compose.yml:
version: "2"
services:
web:
build: .
ports:
- "8080:8080"
links:
- rethinkdb
rethinkdb:
image: rethinkdb
ports:
- "8080"
- "28015"
- "29015"
jedoch ich erhalte einen Fehler
„Fehler zu RethinkDB Datenbank verbinden“
Mein handler.clj:
(ns test.handler
(:gen-class)
(:require [compojure.core :refer :all]
[compojure.route :as route]
[environ.core :refer [env]]
[ring.middleware.defaults :refer [wrap-defaults site-defaults]]
[ring.middleware.reload :as reload]
[rethinkdb.query :as r])
(:use org.httpkit.server
[compojure.handler :only [site]]))
(defn users [request]
(with-open [conn (r/connect :host "rethinkdb" :port 28015 :db "test")]
(r/run (r/db-create "test") conn)
(-> (r/db "test")
(r/table-create "authors")
(r/run conn))))
(defroutes app-routes
(GET "/" [] { :status 200
:headers {"Content-Type" "text/html"}
:body "Server running!"})
(GET "/users" [] users))
(defn -main [& args] ;; entry point, lein run will pick up and start from here
(let [handler (if (in-dev?)
(reload/wrap-reload (site #'app-routes)) ;; only reload when dev
(site app-routes))]
(run-server handler {:port 8080})))
Das Problem tritt auf, wenn ich 127.0.0.1:8080/users
getroffen, welche die Strecke ist, die den rethinkdb Code aufruft. Um den Dienst zu starten, starte ich docker-compose up -d
. Ich nahm den Code, der zu rethinkdb von https://github.com/apa512/clj-rethinkdb verbindet.
Dies ist der Fehler, den ich von meinen Web-Containern Protokollen erhalten:
SEVERE: Error connecting to RethinkDB database
java.net.ConnectException: Connection refused: /127.0.0.1:28015
Nun versucht es immer noch mit '127.0.0.1' statt' rethinkdb' zu verbinden. –