我有一个计划在Docker容器上运行的Spring Boot应用程序,为了测试这个应用程序,我连接到了我主机上的MySQL。为此,我的application.properties中有一个属性,如下所示
spring.datasource.url = jdbc:mysql://host.docker.internal:3306/flexapp
现在,当我执行./mvnw install dockerfile:build时,它会在构建Docker image之前尝试构建应用程序。当它在建造时,它说
Caused by: java.net.UnknownHostException: host.docker.internal: nodename nor servname provided, or not known
显然,它不能解析host.docker.internal。
如何将Docker容器中的Spring Boot应用程序连接到主机中的MySql实例?我在谷歌上搜索并尝试了很多解决方案,但似乎都不起作用。
发布于 2018-08-25 23:55:57
问题是有一些正在执行的测试试图连接到数据库。由于无法解析host.docker.internal,这些测试将失败。
标准的解决方案是使用spring boot提供的一种方法来外部化配置:Externalized Configuration。
具体地说,一种方法是在application.properties中将spring.datasource.url设置为指向本地主机,然后在Dockerfile中通过传递
--spring.datasource.url= jdbc:mysql://host.docker.internal:3306/flexapp添加到Dockerfile中的入口点或CMD指令。
https://stackoverflow.com/questions/52017473
复制相似问题