Настройка Spring Boot Docker и Mysql - PullRequest
0 голосов
/ 09 ноября 2018

Я новичок в Spring Boot and Docker.

Я пытаюсь создать приложение Spring Boot, подключающееся к mysql и использующее Docker для запуска обоих.

Шаги, за которыми я следовал Step1 - создал образ mysql и запустил его.

docker run --name=docker-mysql --env="MYSQL_ROOT_PASSWORD=root" --env="MYSQL_PASSWORD=root" --env="MYSQL_DATABASE=test" mysql

Step2 Создано приложение SpringBoot

docker build -f Dockerfile -t gradle-springboot-docker .

Step3 Запустил приложение Spring Boot и связался с Mysql

docker run -t --name gradle-springboot-docker --link docker-mysql:mysql -p 8080:8080 gradle-springboot-docker

Это дает основную ошибку подключения к MySQL. Я перечислил ниже application.properties. Является ли информация о моем соединении верной, так как я использую Docker. Каким будет хост для mysql?

SSL properties
server.port=8080

#DataSource
datasource.driver = com.mysql.jdbc.Driver
datasource.url= jdbc:mysql://localhost:3306/test? 
autoReconnect=true&useSSL=false            
datasource.username=root
datasource.password=root

# Hibernate
hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
hibernate.show_sql = true
hibernate.lazy = true
hibernate.max_fetch_depth = 3
hibernate.packagesToScan = com.springboot.poc
# Once DB is created change below property to 'update'
hibernate.hbm2ddl.auto = update

1 Ответ

0 голосов
/ 09 ноября 2018

Вы должны использовать имя контейнера mysql в качестве имени хоста, так как они связаны, контейнер mysql может быть обнаружен по его имени из весны. Поэтому вам нужно изменить datasource.url= jdbc:mysql://localhost:3306/test? на datasource.url= jdbc:mysql://docker-mysql:3306/test?

Или вы можете использовать псевдоним, как предложено @ g00glen00b, например: datasource.url= jdbc:mysql://mysql:3306/test?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...