我有一个 Spring Boot
我计划在 Docker
上运行的应用程序容器并测试此应用程序,我连接到 MySQL
在我的主机上。为此,我的 application.properties
中有一个属性。如下spring.datasource.url = jdbc:mysql://host.docker.internal:3306/flexapp
现在当我做 ./mvnw install dockerfile:build
它试图在构建 Docker image
之前构建应用程序.它在 build 时说Caused by: java.net.UnknownHostException: host.docker.internal: nodename nor servname provided, or not known
显然无法解决host.docker.internal
.
如何连接我的 Spring Boot
申请 Docker
容器到 MySql
我的主机中的实例?我用谷歌搜索并尝试了很多解决方案,但似乎没有任何效果。
最佳答案
问题是正在执行的一些测试试图连接到数据库。由于无法解析 host.docker.internal
,这些测试将失败.
标准解决方案是使用 spring boot 提供的一种方法来外部化配置:Externalized Configuration .
特别是,一种方法是设置 spring.datasource.url
指向 application.properties 中的 localhost 并通过传递在 Dockerfile 中覆盖它
--spring.datasource.url= jdbc:mysql://host.docker.internal:3306/flexapp
到 Dockerfile 中的 Entrypoint 或 CMD 指令。
关于docker - Docker 容器中的 Spring Boot 应用程序和主机中的 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52017473/