У меня есть два приложения Spring, которые используют одну и ту же базу данных Mysql.
Они отлично работают, когда я запускаю их без docker-compose. Мой компьютер - Windows 10 Professional.
application.properties
server.port=8085
spring.jpa.show-sql=true
spring.jackson.serialization.write-dates-as-timestamps=false
spring.jpa.hibernate.ddl-auto=update
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306 /webDatabase?autoReconnect=true&useSSL=false
spring.datasource.username=root
spring.datasource.password=my-secret-pw
Dockerfile
FROM openjdk:8-jdk-alpine
ADD target/web-spring-boot.jar web-spring-boot.jar
EXPOSE 8085
ENTRYPOINT ["java","-jar", "web-spring-boot.jar"]
Я создал этот docker-compose.yml на основе других примеров.
version: '3'
services:
web:
build: ./web
ports:
- "8085:8085"
depends_on:
- "database"
solver:
build: ./solver
ports:
- "8095:8095"
depends_on:
- "database"
database:
image: "mysql:latest"
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=my-secret-pw
- MYSQL_DATABASE=webDatabase
healthcheck:
test: "/usr/bin/mysql --user=root --password=my-secret-pw --execute \"SHOW DATABASES;\""
interval: 10s
timeout: 20s
retries: 10
volumes:
logvolume01: {}
Это не работает. После запуска работает только контейнер Mysql.
Вот часть вывода с журналами Spring
solver_1 | 2019-01-04 22: 55: 15.698 WARN 1 --- [main] o.h.engine.jdbc.spi.SqlExceptionHelper: ошибка SQL: 0, состояние SQLState: 08S01
solver_1 | 2019-01-04 22: 55: 15.698 ОШИБКА 1 --- [main] o.h.engine.jdbc.spi.SqlExceptionHelper: сбой линии связи
solver_1 |
solver_1 | Последний пакет, успешно отправленный на сервер, был 0 миллисекунд назад. Драйвер не получил никаких пакетов с сервера.
Что мне не хватает в конфигурации? application.properties
игнорируются при работе с композитингом?