Как мне сказать моему приложению Spring Boot Neo4J, подключенному к док-станции, общаться с моим сервером Neo4j? - PullRequest
0 голосов
/ 18 января 2019

У меня есть готовое приложение Spring Data Neo4j, которое отлично работает, когда я общаюсь с сервером Neo4j, работающим на моем компьютере. «Из коробки» я имею в виду, что единственная конфигурация, которую я сделал в приложении, это указать имя пользователя и пароль для Neo4j.

Приложение (работает с ./gradlew bootRun) также отлично работает с докеризированным сервером Neo4j.

Когда я создаю образ докера для этого приложения, оно не может подключиться к серверу Neo4j, независимо от того, подключено оно или нет.

Когда это работает, оно говорит:

2019-01-18 12: 58: 49.311 INFO 18345 --- [restartedMain] Драйвер: прямой экземпляр драйвера 1080149308 создан для адреса сервера localhost: 7687

Когда это не работает, оно говорит:

2019-01-18 02: 27: 53.760 INFO 1 --- [main] Драйвер: экземпляр прямого драйвера 707892422 создан для адреса сервера localhost: 7687

2019-01-18 02: 27: 54.100 INFO 1 --- [main] ConnectionPool: Закрытие пула подключений к локальному узлу: 7687

[...]

Вызвано: org.neo4j.driver.internal.shaded.io.netty.channel.AbstractChannel $ AnnotatedConnectException: соединение отклонено: localhost / 127.0.0.1: 7687

Я пытался связать два докера (приложение и докер Neo4j) с --link. Тот же результат.

Я пытался их составить:

version: '3'

services:
  docker-neo:
    image: neo4j:3.5
    ports:
      - 7687:7687
      - 7474:7474

  godojo:
    image: com.greenasjade.j01/j01
    depends_on:
      - docker-neo
    ports:
      - 8081:8081

Радости нет.

Мне нужно закончить докеризированным решением.

1 Ответ

0 голосов
/ 18 января 2019

См. Этот ответ, который относится к MySQL, но объясняет проблему с сетью.

Как подключиться к локальному узлу машины из контейнера Docker?

В итоге, если вы используете linux, добавьте --network = "host", и если вы работаете в windows или mac, измените хост neo4j в конфигурации Spring Boot на host.docker.internal. Для этого отредактируйте файл application.properties или application.yml.

spring.data.neo4j.uri=bolt://host.docker.internal:7687

Документация по поддержке Neo4j в Spring Boot находится здесь.

https://docs.spring.io/spring-boot/docs/2.1.2.RELEASE/reference/htmlsingle/#boot-features-neo4j

...