Я хочу развернуть приложение Springboot в Docker-контейнере, выполняющем mysql. Приложение должно подключиться к mysql в процессе запуска, и я использую библиотеку ormlite для этого. Несмотря на то, что процесс отлично работает вне контейнера, как только я пытаюсь развернуть войну внутри контейнера, я получаю следующее исключение:
java.sql.SQLException: доступ запрещен для пользователя 'root' @ 'localhost'.
MySQL работает, и порт 3306 открыт в Dockerfile.
Ниже мой Dockerfile:
FROM mydocker:latest1
MAINTAINER DockerFan version 1.0
ADD tomcat.sh /bin/tomcat.sh
ADD application1.war /etc/apache-tomcat-9.0.12/webapps/application1.war
ADD application2.war /etc/apache-tomcat-9.0.12/webapps/application2.war
EXPOSE 8080
EXPOSE 3306
ENTRYPOINT "/bin/tomcat.sh"
пока скрипт tomcat.sh:
bash /etc/init.d/mysql start
sleep 10
bash /etc/apache-tomcat-9.0.12/bin/catalina.sh run
EDIT
Я написал скрипт на python, чтобы проверить, было ли что-то не так с mysql, но я смог успешно подключиться к базе данных.
Я также пытался с простой банкой, которая только должна подключиться к БД, но ошибка все та же. Вот код, который я использую:
String databaseURL = "jdbc:mysql://localhost/db_name?user=root&password=password"
connection = new JdbcConnectionSource(databaseURL);