微服务未在使用 docker-compose 运行的服务注册表上注册

问题描述 投票:0回答:1

我有两个微服务

  1. 网关:端口8080
  2. 服务-注册表(尤里卡):端口8761

如果我在本地单独运行服务,它工作正常,并且服务注册到 ruke 服务注册表。

enter image description here

但是当我使用 docker-compose 运行服务时,它们单独运行,单独运行良好,但网关服务未在 eureka 服务注册表上注册

以下是配置文件 网关服务eureka配置(applicaiton.yml)

spring:
 cloud:
   gateway:
     routes:
       - id: identity-service
         uri: lb://IDENTITY-SERVICE
         predicates:
           - Path=/auth/**

 application:
   name: SWIGGY-GATEWAY

eureka:
  client:
    service-url:
      defaultZone : http://localhost:8761/eureka/

Eureka 服务注册表配置(applicaiton.yml)

eureka:
  client:
    register-with-eureka: false
    fetch-registry: false
server:
  port: 8761

docker-compose.yml 来运行服务

version: '3.1'

services:
  gateway:
    image: 'gateway:latest'
    build:
      context: ./swiggy-gateway
      dockerfile: Dockerfile
    container_name: gateway
    networks:
      - test-network
    ports:
      - "8080:8080"
    depends_on:
      - eureka

  eureka:
    image: 'eureka:latest'
    build:
      context: ./swiggy-service-registry
      dockerfile: Dockerfile
    container_name: eureka
    networks:
      - test-network
    ports:
      - "8761:8761"

networks:
  test-network:
    driver: bridge

我尝试过有网络和没有网络的 docker-compose

java spring-boot docker-compose netflix-eureka
1个回答
0
投票

我通过将 eureka 默认区域添加为每个微服务的服务中的环境变量来解决这个问题

environment:
  SPRING_CLOUD_DISCOVERY_ENABLED: true
  EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://eureka:8761/eureka/
© www.soinside.com 2019 - 2024. All rights reserved.