Docker-Compose File
db: image: mysql:latest environment: MYSQL_DATABASE: 'tel' restart: 'always' MYSQL_USER: 'root' MYSQL_ROOT_PASSWORD: 'test' ports: - '3306:3306' volumes: - my-db:/usr/local/var/mysql app: image: "myapp/app:v1" ports: - "9292:9292" environment: SPRING_DATASOURCE_URL: jdbc:mysql://db/data SPRING_DATASOURCE_USERNAME: root SPRING_DATASOURCE_PASSWORD: 'test' depends_on: - db volumes: my-db:
Ошибка при выполнении Docker compose
Причина: java.sql.SQLSyntaxErrorException: Таблица 'data.token' не существует вcom.mysql.cj.jdbc.exceptions.SQLError.createSQLException (SQLError.java:120) ~ [mysql-connector-java-8.0.13.jar! /: 8.0.13] в com.mysql.cj.jdbc.exceptions.SQLError.createSQLException (SQLError.java:97) ~ [mysql-connector-java-8.0.13.jar! /: 8.0.13]
таблица «данные» присутствуетлокально, но не в состоянии отобразить его из docker compose
Ошибка произошла из-за несоответствия версий базы данных, так как в локальном контейнере и контейнере Docker были разные версии mysql, поэтому после применения переноса базы данных и добавления правильных данных все заработало.
Я думаю, что ваш jdbc URL неверен. Это должно быть:
SPRING_DATASOURCE_URL: "jdbc:mysql://db/tel"
Формат строки описан здесь .
Кстати, я думаю, что restart: 'always' должно быть за пределами блока environment.
restart: 'always'
environment