HibernateException при попытке подключиться из Docker к внешнему серверу MySQL

Я создал небольшое приложение, использующее Hibernate и Spring boot. У меня есть база данных MySQL на внешнем сервере с некоторым IP-адресом 123.123.12.123.

Когда я запускаю это приложение локально (в Windows) через java -jar myapp.jar, возникает проблема нет, приложение запускается и все нормально. проблема появляется, когда я пытаюсь запустить это приложение в Docker. Приложение даже не запускается. Есть HibernateException:

Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set

Я уверен, что это потому, что я не могу подключиться к базе данных. (У меня такая же проблема, когда я пытался подключиться локально, а база данных была недоступна). Итак, что мне делать, чтобы это исправить? Это мой application.properties:

spring.datasource.url=jdbc:mysql://123.123.12.123:3306/szoplist_db
spring.datasource.username=root
spring.datasource.password=my_passwd

Обновлено:

Я запускаю образ докера через docker run -p 8080:8080 <IMAGE_ID>.

Dockerfile:

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE

ADD ${JAR_FILE} /app.jar

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

Другие приложения (без db) с тем же файлом Dockerfile и командой запуска работают.

Укажите свою команду docker run. Docker-файл вашего приложения также может помочь. Вы пробовали пинговать ip из контейнера? Также можно попробовать одно из решений от stackoverflow.com/q/20430371/2065796

Sasha Shpota 16.03.2018 09:14

Да сэр! Сделанный.

user6747491 16.03.2018 09:26

У меня есть Интернет в моем наборе инструментов Docker - я могу пинговать свой сервер 123.123.12.123 (как [email protected]).

user6747491 16.03.2018 09:34

Что вы имеете в виду под as [email protected]? docker run -it openjdk:8-jdk-alpine ping 123.123.12.123 работает?

Sasha Shpota 16.03.2018 09:37
ping 123.123.12.123 работает. 123.123.12.123 это всего лишь IP моего внешнего сервера MySQL. Докер, который я использую, находится на моем компьютере локально.
user6747491 16.03.2018 09:42

И да, docker run -it openjdk:8-jdk-alpine ping 123.123.12.123 работает.

user6747491 16.03.2018 09:53

Возможно, проблема в настройке гибернации. Убедитесь, что в докере выбран правильный профиль пружины (правильный application.properties). Есть ли в исключении разделы caused by? Также может помочь публикация полной трассировки стека.

Sasha Shpota 16.03.2018 10:02
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
7
192
0

Другие вопросы по теме