Невозможно отобразить локальную базу данных с (тома в изображении mysql) в файле Docker-Compose - PullRequest
0 голосов
/ 30 октября 2019

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

Ответы [ 2 ]

0 голосов
/ 08 ноября 2019

Ошибка произошла из-за несоответствия версий базы данных, так как в локальном контейнере и контейнере Docker были разные версии mysql, поэтому после применения переноса базы данных и добавления правильных данных все заработало.

0 голосов
/ 30 октября 2019

Я думаю, что ваш jdbc URL неверен. Это должно быть:

SPRING_DATASOURCE_URL: "jdbc:mysql://db/tel"

Формат строки описан здесь .

Кстати, я думаю, что restart: 'always' должно быть за пределами блока environment.

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