我有以下问题。
我有两个 Springboot 服务:服务 A 和服务发现 Eureka。
我有两个用例。
我把它们装进容器里。然后我使用随机 docker 端口映射启动服务 A:
docker run -p 0: 8080 serviceA
之后我遇到了以下问题。
Docker 服务 A 使用 docker 发现服务注册 端口不正确。服务A注册到Spring Boot的端口 应用程序8080,不是docker端口。
如何告诉服务A注册到docker的端口?
Eureka 将尝试在
boostrap.yml
文件中定义的端口中调用您的服务,如果未定义,则为 8080。
因此,您需要在 Docker 容器中打开数据相同端口映射:
docker run -p 8080:[the port used your application]
请记住,读取引导文件是 Spring 在启动时所做的第一件事。
如果您想在本地运行,您可以定义一个配置文件,其中禁用 Spring Cloud 并且端口使用是典型的配置文件(即由属性 server.port 定义)