Dockerized Spring 启动和 Zuul
Dockerized Spring boot and Zuul
我在使用 docker 化 Spring 启动应用程序时遇到了麻烦。
Zuul 似乎无法将请求代理到目标应用程序 (gis_import_export),即使它已经启动并且 运行。
我基于 Zuul 的 Spring 应用配置:
spring:
banner:
location: classpath:banner.txt
zuul:
debug:
request: true
routes:
ie:
url: http://gis_import_export:8080
geoserver:
url: http://geoserver:8080
geonetwork:
url: http://geonetwork:8080
ribbon:
eureka:
enabled: false
和我的 docker-compose.yml 文件:
version: "3"
services:
geoserver:
image: kartoza/geoserver
geonetwork:
image: geonetwork
postgres:
image: postgres
environment:
- POSTGRES_DB=xxx
- POSTGRES_PASSWORD=xxx
- POSTGRES_USER=xxx
gis_import_export:
image: gis_import_export:develop
ports:
- 8888:8080
zuul:
image: gis_api_gateway:develop
ports:
- 8080:8080
我能够通过 Zuul 服务公开端口正确地代理 geonetwork/geoserver,但我仍然无法使用 Spring 启动应用程序似乎没有得到代理。
顺便说一句,如果通过 8888 端口访问 docker 化 Spring 启动应用程序,如果 zuul 本身未通过 Docker 部署,则通过 Zuul 访问,则按预期工作。
运行 Zuul docker 容器内的 ping/telnet 到 docker 化 spring 启动应用程序按预期工作,因此名称被正确解析。
想法?
谢谢,FB
您在不同 docker 网络中的服务 运行。
您必须在两个文件网络中指定相同的网络。
当然,如果你为每个容器指定主机名参数就更好了
我在使用 docker 化 Spring 启动应用程序时遇到了麻烦。 Zuul 似乎无法将请求代理到目标应用程序 (gis_import_export),即使它已经启动并且 运行。
我基于 Zuul 的 Spring 应用配置:
spring:
banner:
location: classpath:banner.txt
zuul:
debug:
request: true
routes:
ie:
url: http://gis_import_export:8080
geoserver:
url: http://geoserver:8080
geonetwork:
url: http://geonetwork:8080
ribbon:
eureka:
enabled: false
和我的 docker-compose.yml 文件:
version: "3"
services:
geoserver:
image: kartoza/geoserver
geonetwork:
image: geonetwork
postgres:
image: postgres
environment:
- POSTGRES_DB=xxx
- POSTGRES_PASSWORD=xxx
- POSTGRES_USER=xxx
gis_import_export:
image: gis_import_export:develop
ports:
- 8888:8080
zuul:
image: gis_api_gateway:develop
ports:
- 8080:8080
我能够通过 Zuul 服务公开端口正确地代理 geonetwork/geoserver,但我仍然无法使用 Spring 启动应用程序似乎没有得到代理。 顺便说一句,如果通过 8888 端口访问 docker 化 Spring 启动应用程序,如果 zuul 本身未通过 Docker 部署,则通过 Zuul 访问,则按预期工作。
运行 Zuul docker 容器内的 ping/telnet 到 docker 化 spring 启动应用程序按预期工作,因此名称被正确解析。
想法?
谢谢,FB
您在不同 docker 网络中的服务 运行。 您必须在两个文件网络中指定相同的网络。
当然,如果你为每个容器指定主机名参数就更好了