【发布时间】:2020-05-18 22:23:18
【问题描述】:
我有 2 个应用程序,都是使用 spring boot 编写的。两者都在不同的 docker 容器中运行。我也有领事在不同的 docker 容器中运行。我使用 docker-compose.yml 文件为 consul 公开了端口 8500。那么,我如何指定我的 Spring Boot 应用程序在哪里注册自己,即 consul 在哪里运行。我要给出映射端口的地址(映射到我的本地机器的端口),还是进行一些其他更改?
我现在使用的例子:https://github.com/Java-Techie-jt/cloud-consul-service-discovery
编辑:
docker-compose.yml:
version: "2"
services:
consul:
container_name: consul
image: consul
expose:
- "8300"
- "8400"
- "8500"
restart: always
registrator:
container_name: registrator
image: gliderlabs/registrator:master
volumes:
- "/var/run/docker.sock:/tmp/docker.sock"
command: -internal consul://consul:8500
restart: always
depends_on:
- consul
web1:
image: deis/mock-http-server
container_name: web1
expose:
- "8080"
environment:
SERVICE_NAME: "web"
SERVICE_TAGS: "web"
restart: always
depends_on:
- registrator
web2:
image: deis/mock-http-server
container_name: web2
expose:
- "8080"
environment:
SERVICE_8080_NAME: "web"
SERVICE_8080_TAGS: "web"
restart: always
depends_on:
- registrator
haproxy:
build: ./haproxy
container_name: my-haproxy
image: anthcourtney/haproxy-consul
ports:
- 80
depends_on:
- web1
- web2
test:
container_name: test-client
build: ./test
depends_on:
- haproxy
networks:
default:
【问题讨论】:
标签: spring-boot docker spring-cloud consul spring-cloud-consul