当作为Docker容器运行时,JavaSpring不会与Consor对话
我试图解决我认为运行微服务的常见用例。在本例中,我正在使用spring云应用程序测试Concur。我试着用两种不同的方式来测试领事。第一个在docker容器中运行,另一个在docker主机上运行。然后我尝试启动一个SpringCloud容器,它将与任何一个Consor示例进行对话 当SpringCloud应用程序作为docker容器运行时,我无法让SpringCloud应用程序与Concur对话。当spring云应用程序以主机网络模式运行时,它可以解析本地主机端口,但如果我希望运行映像的多个实例,这不是一个可接受的解决方案 下面是我的docker compose文件的一个示例,它以容器的形式运行这两个服务。在这里,我试图通过环境变量在SpringCloud中设置ConsourURI,但无法使用各种配置使其工作。如果有人能举一个例子,说明这些函数是如何协同工作的,那将非常有帮助当作为Docker容器运行时,JavaSpring不会与Consor对话,java,docker,spring-cloud,microservices,consul,Java,Docker,Spring Cloud,Microservices,Consul,我试图解决我认为运行微服务的常见用例。在本例中,我正在使用spring云应用程序测试Concur。我试着用两种不同的方式来测试领事。第一个在docker容器中运行,另一个在docker主机上运行。然后我尝试启动一个SpringCloud容器,它将与任何一个Consor示例进行对话 当SpringCloud应用程序作为docker容器运行时,我无法让SpringCloud应用程序与Concur对话。当spring云应用程序以主机网络模式运行时,它可以解析本地主机端口,但如果我希望运行映像的多个实例
consul1:
image: progrium/consul
ports:
- "8400:8400"
- "8500:8500"
- "8600:53/udp"
- "8600:53/tcp"
environment:
GOMAXPROCS: 100
entrypoint: "/bin/consul"
hostname: consul
command: agent -log-level=debug -server -config-dir=/config -bootstrap -ui-dir /ui
simpletest:
build: simpletest
hostname: simpletest
environment:
JAVA_OPTS: "-Xdebug -Xrunjdwp:server=y,transport=dt_socket,suspend=n -Dspring.cloud.consul.host=consul1"
ports:
- 39041:7051
- 39052:7055
# d2fdockerroot_consul1_1 consul
# links:
# - consul1
这里有一个酿酒厂系统的例子-。其中一个文件是领事的docker撰写文件 查看代码库中的所有
应用程序concur.yaml
文件,了解如何设置Spring引导应用程序与concur对话
例如:
如果有任何问题,请写在这里或转到spring cloud gitter,我遇到了完全相同的问题:链接到我的领事容器是不够的。但是,下面是为我做的:如上所述,相应的concur主机和端口配置需要放在
bootstrap.yml
,而不是application.yml
spring:
cloud:
consul:
host: consul
port: 8500
使用相应的docker compose.yml
:
version: "2.0"
services:
consul:
image: consul:latest
ports:
- "8500:8500"
my-service:
build: path/to/dockerfile
depends_on:
- consul
links:
- consul:consul
这非常有用。通过使用它,我可以修改我的示例,通过在环境“spring.cloud.consul.host:discovery”下设置来指定领事url对于这个实例来说,这显然已经足够了。一旦您启用了
链接:-consul1
部分,就应该可以工作了,因为这会在simpletest容器的/etc/hosts
中产生一个条目,所以它会将consul1
主机名解析为consul1容器的docker内部ip。您可以单独进行测试,也许您的JAVA_选项没有被某些脚本用来设置这些参数?谢谢!遇到了同样的问题,添加bootstrap.yml解决了我的问题。