У меня есть java-приложение springboot внутри докера, которому нужно получить доступ к внешнему mysql.
Как я могу это настроить? Можно ли определить это внутри Dockerfile?
Теперь я перехожу к докеру, поэтому я предполагаю, что это должна быть простая и распространенная задача :)
Когда я запускаю приложение, я получаю сообщение об ошибке
2019-02-12 15: 10: 51,472 DEBUG [main] com.zaxxer.hikari.pool.HikariPool: HikariPool-1 - Невозможно установить соединение с источником данных java.sql.SQLNonTransientConnectionException: не удалось создать соединение с сервером базы данных. Попытка переподключиться 3 раза. Сдаваться.
мой Dockerfile
FROM openjdk:11.0.2-jre-slim
VOLUME /tmp
COPY target/app-0.4-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
EXPOSE 9001/tcp
Если сервер mysql работает на хосте докеров, либо на металле, либо на другом контейнере с сопоставленным портом, возможно, конфигурация вашего приложения все еще ищет сервер базы данных на локальном хосте, который в своем контейнере указывает на интерфейс обратной связи ВНУТРИ контейнер.
Обойти это можно по специальному адресу: host.docker.internal
см. информацию