【问题标题】:How do I keep the Eureka server url dynamic in the Eureka Client while using docker?使用 docker 时,如何在 Eureka Client 中保持 Eureka 服务器 url 动态?
【发布时间】:2020-08-28 10:05:55
【问题描述】:

我正在使用 fabric8 docker-maven-plugin 为我的 Spring Boot 微服务构建映像。

<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>

问题是,在 docker 容器中运行应用程序时,我必须为 Eureka Client 指定 Eureka Server Container 名称。但是如果我直接将它作为“Spring Boot APP”运行,我必须使用“Localhost:8761/Eureka”。有没有办法让它在有/没有 docker 的情况下都可以工作,如下所示?

eureka:
  client:
    service-url:
      defaultZone: ${EUREKA_SERVER:http://localhost:8761/eureka}

我无法从 fabrib8 插件传递“EUREKA_SERVER”的值。我尝试了下面的代码来传递值,但它不起作用。

<docker.env.JAVA_OPTS>-DEUREKA_SERVER=http://discovery:8761/eureka</docker.env.JAVA_OPTS>

【问题讨论】:

    标签: spring-boot docker docker-compose microservices fabric8-maven-plugin


    【解决方案1】:

    Spring 可以拾取环境变量。因此,如果您将环境变量添加到运行 Spring Boot 的 Docker 容器中,它们将起作用。这避免了预先提供静态 URL 的需要。

    如果您使用 Docker Compose,它可能如下所示:

    services:
      eureka:
        image: springcloud/eureka
        container_name: eureka
        ports:
          - "8761:8761"
        networks:
          - "discovery"
        environment:
          - EUREKA_INSTANCE_PREFERIPADDRESS=true
    
      spring:
        build:
          context: .
          dockerfile: ./src/main/docker/Dockerfile
        depends_on:
          - eureka
        container_name: spring
        ports:
         - "8080:8080"
        networks:
         - "discovery"
        environment:
          - EUREKA_SERVICE_URL=http://eureka:8761 // This overrides your Spring Property
          - EUREKA_INSTANCE_PREFER_IP_ADDRESS=true
          - LOGGING_FILE=/tmp/admin.log
    

    注意:由于环境变量不是 YAML,因此您需要稍微更改格式。 https://docs.spring.io/spring-boot/docs/1.5.5.RELEASE/reference/html/boot-features-external-config.html#boot-features-external-config-relaxed-binding

    【讨论】:

      猜你喜欢
      • 2022-01-26
      • 2019-07-24
      • 2020-12-30
      • 2018-09-02
      • 2021-12-08
      • 2021-06-15
      • 2020-05-22
      • 1970-01-01
      • 2020-12-05
      相关资源
      最近更新 更多