我尝试在docker容器上部署spring boot jar。但是连接失败。 application.properties中的DB_URL如下所示,
spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost/test?characterEncoding=utf8&serverTimezone=Asia/Seoul
spring.datasource.username = root
spring.datasource.password = password
我使用来自docker hub的mysql映像构建mysql docker容器,端口号为3306。当我使用以下命令在localhost上执行应用程序jar文件时,
java -Dfile.encoding=UTF8 -jar Spring-Blog-Jpa-0.0.1-SNAPSHOT.jar
它运行良好,没有错误。应用程序可以在本地主机上通信具有端口号3306的mysql docker容器。接下来,我在Dockerfile下面创建应用程序的Docker容器,
FROM openjdk:11-jdk
ADD target/Spring-Blog-Jpa-0.0.1-SNAPSHOT.jar blog-app.jar
EXPOSE 8080
ENTRYPOINT ["java","-Dfile.encoding=UTF8","-jar","blog-app.jar"]
应用程序docker映像已成功构建。但是容器根本无法连接到MySQL Docker容器。 connection refused
是例外。
在localhost中,应用程序Spring-Blog-Jpa-0.0.1-SNAPSHOT.jar可以连接到MySQL docker容器,但是在应用程序docker容器中,连接到MySQL docker容器失败。 DB_URL必须是什么才能连接mysql容器?