Кто-нибудь смог привязаться к [java.net InetSocketAddress ServerSocket]
изнутри докера? У меня есть простой процесс NRepl, работающий в док-контейнере. Но я не могу подключиться к этому процессу NRepl.
Мой docker-compose.yml
выглядит примерно так.
version: '3'
services:
foo:
ports:
- ${NREPL_PORT:-7001}:7001
В докеризованном приложении происходит привязка к хосту/порту, как показано ниже.
InetSocketAddress ia = new InetSocketAddress("0.0.0.0" 7001);
ServerSocket s = new ServerSocket();
s.setReuseAddress(true);
s.bind(ia);
Но я постоянно получаю сообщение об ошибке при попытке подключения из-за пределов докера.
λ lein repl :connect localhost:7001
Connecting to nREPL at localhost:7001
SocketException The transport's socket appears to have lost its connection to the nREPL server
nrepl.transport/bencode/fn--9182/fn--9183 (transport.clj:108)
nrepl.transport/bencode/fn--9182 (transport.clj:108)
nrepl.transport/fn-transport/fn--9150 (transport.clj:55)
clojure.core/binding-conveyor-fn/fn--5739 (core.clj:2030)
java.util.concurrent.FutureTask.run (FutureTask.java:266)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:617)
java.lang.Thread.run (Thread.java:745)
Я пытался прослушивать эти адреса (прослушивание локального хоста было бы недоступно с хоста докера), но каждый раз я получаю одну и ту же ошибку.
"0.0.0.0"
"::"
И при запуске я проверяю и открываю ожидаемые порты.
λ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4d39d81fba69 api_api "lein run" 5 minutes ago Up 5 minutes 0.0.0.0:7001->7001/tcp api_api_1
Это похожие вопросы (a, b), что не совсем помогло в мое дело.