Service are not registered in Eureka Server with docker-compose. Spring boot 3

24 views Asked by At

I have been reading all the possible errors and solutions but they do not apply to my case. I have several microservices defined, admin-server, eureka-server, config-server. Before I had problems that were not registered locally or in docker with docker-compose but now the problem is in docker. The configuration of the microservices is the same and I don't understand why one of them is not registering in eureka. I have verified that they are on the same network but I don't know more. I'm attaching the docker-compose configuration and properties to see if they might detect something I don't see. I have modified in the customer-service microservice the HOST_NAME=eureka-server with the name of the container to see if it is the problem but no, before it was with discovery-server Thank you

Spring-boot 3.2.3, Spring cloud 2023.0.0, Java openjdk-17

Error when starting

c.n.d.s.t.d.RedirectingEurekaHttpClient  : Request execution error. endpoint=DefaultEndpoint{ serviceUrl='http://eureka-server:8761/eureka/}, exception=503 Service Unavailable from UNKNOWN  stacktrace=org.springframework.web.reactive.function.client.WebClientResponseException$ServiceUnavailable: 503 Service Unavailable from UNKNOWN

docker-compose.yml

version: '3.8'
services:
  ############################################################################
  ## Configuración para el servidor descubridor de servicios
  ##
  ############################################################################
  registry-discovery:
    networks:
      - payment_network
    container_name: eureka-server
    image: paymentchain/service-docker-eureka-server:0.0.1-SNAPSHOT
    ports:
      - "8761:8761"
    environment:
      - JAVA_OPTS=
        -Xms256M
        -Xmx256M
        -DHOST_NAME=registry-discovery
        -DSECURE_PORT=8761
      - SPRING_PROFILES_ACTIVE=docker

  ############################################################################
  ## Configuración para el servidor de configuraciones de propiedades
  ## de servicios
  ##
  ############################################################################
  configuration-server:
    networks:
      - payment_network
    container_name: config-server
    image: paymentchain/service-docker-config-server:0.0.1-SNAPSHOT
    volumes:
      - ./config-server-repo:/tmp/config-server-repo
    environment:
      - JAVA_OPTS=
        -Xms256M
        -Xmx256M
      - USER_NAME=argades
      - TOKEN_ACCESS=xxxxxxxxxxxxxxx
      - SERVER_REPO=config-server-repo
      - HOST_NAME=registry-discovery
      - SECURE_PORT=8761
      - REMOTE_REPOSITORY=https://github.com/argades/spring-boot-ms-test.git
      - SPRING_PROFILES_ACTIVE=docker
    depends_on:
      - registry-discovery
    ports:
      - 8888:8888

  ############################################################################
  ## Configuración para el servidor de administración de servicios
  ##
  ############################################################################
  administration-server:
    networks:
      - payment_network
    container_name: admin-server
    image: paymentchain/service-docker-admin-server:0.0.1-SNAPSHOT
    environment:
      - JAVA_OPTS=
        -Xms256M
        -Xmx256M
      - HOST_NAME=registry-discovery
      - SECURE_PORT=8761
      - SPRING_PROFILES_ACTIVE=docker
    depends_on:
      - registry-discovery
    ports:
      - "8762:8762"

  ############################################################################
  ## Configuración para el servicio de productos
  ##
  ############################################################################
  product-service:
    networks:
      - payment_network
    container_name: product-service
    image: paymentchain/service-docker-product:0.0.1-SNAPSHOT
    environment:
      - JAVA_OPTS=
        -Xms256M
        -Xmx256M
      - SERVER_PORT=8083
      - HOST_NAME=registry-discovery
      - SECURE_PORT=8761
      - ADMIN_SERVER_URL=http://administration-server:8762
      - REMOTE_REPOSITORY_SERVER_URI=http://configuration-server:8888
      - CFG_SERVER_ID=configuration-server
      - CFG_PROPERTY_FILE_NAME=payment-chain
      - CFG_PROFILE=production
      - CFG_USER_NAME=admin
      - CFG_PASSWORD=qwerty
      - SPRING_PROFILES_ACTIVE=docker
    links:
      - registry-discovery
      - configuration-server
      - administration-server
    depends_on:
      configuration-server:
        condition: service_started
      registry-discovery:
        condition: service_started
      administration-server:
        condition: service_started
    ports:
      - "8083:8083"

  ############################################################################
  ## Configuración para el servicio de clientes
  ##
  ############################################################################
  customer-service:
    networks:
      - payment_network
    container_name: customer-service
    image: paymentchain/service-docker-customer:0.0.1-SNAPSHOT
    environment:
      - JAVA_OPTS=
        -Xms256M
        -Xmx256M
      - SERVER_PORT=8081
      - HOST_NAME=eureka-server
      - SECURE_PORT=8761
      - ADMIN_SERVER_URL=http://administration-server:8762
      - REMOTE_REPOSITORY_SERVER_URI=http://configuration-server:8888
      - CFG_SERVER_ID=configuration-server
      - CFG_PROPERTY_FILE_NAME=payment-chain
      - CFG_PROFILE=production
      - CFG_USER_NAME=admin
      - CFG_PASSWORD=qwerty
      - PRODUCT_SERVICE_URI=http://product-service:8083/api/product
      - TRANSACTION_SERVICE_URI=http://transaction-service:8082/api/transaction
      - SPRING_PROFILES_ACTIVE=docker
    links:
      - registry-discovery
      - configuration-server
      - administration-server
    depends_on:
      postgres_db:
        condition: service_started
      configuration-server:
        condition: service_started
      registry-discovery:
        condition: service_started
      administration-server:
        condition: service_started
    ports:
      - "8081:8081"

  ############################################################################
  ## Configuración para el servicio de transacciones
  ##
  ############################################################################
  transaction-service:
    networks:
      - payment_network
    container_name: transaction-service
    image: paymentchain/service-docker-transaction:0.0.1-SNAPSHOT
    environment:
      - JAVA_OPTS=
        -Xms256M
        -Xmx256M
      - SERVER_PORT=8082
      - HOST_NAME=registry-discovery
      - SECURE_PORT=8761
      - ADMIN_SERVER_URL=http://administration-server:8762
      - REMOTE_REPOSITORY_SERVER_URI=http://configuration-server:8888
      - CFG_SERVER_ID=configuration-server
      - CFG_PROPERTY_FILE_NAME=payment-chain
      - CFG_PROFILE=development
      - CFG_USER_NAME=admin
      - CFG_PASSWORD=qwerty
      - SPRING_PROFILES_ACTIVE=docker
    links:
      - registry-discovery
      - configuration-server
      - administration-server
    depends_on:
      configuration-server:
        condition: service_started
      registry-discovery:
        condition: service_started
      administration-server:
        condition: service_started
    ports:
      - "8082:8082"
      
  ############################################################################
  ## Database configuration
  ##
  ############################################################################
  postgres_db:
    networks:
      - payment_network
    container_name: postgres
    image: postgres
    ports:
      - 5432:5432
    restart: always
    volumes:
      - ./dbfiles/:/docker-entrypoint-initdb.d/init-user-db.sh:rw
      - /var/lib/postgres_data:/var/lib/postgressql/data
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=qwerty
      - POSTGRES_DB=postgres

  pgadmin4:
    networks:
      - payment_network
    image: dpage/pgadmin4
    restart: always
    environment:
      PGADMIN_DEFAULT_EMAIL: [email protected]
      PGADMIN_DEFAULT_PASSWORD: admin
    ports:
      - 80:80
    depends_on:
      - postgres_db

networks:
  payment_network:
    name: payment_network
    driver: bridge

customer-service, transaction-service and product-service are the same eureka configuration properties.

#--------------------------------
# EUREKA SERVICE DISCOVERY
#--------------------------------
eureka.client.fetch-registry=true
eureka.client.webclient.enabled=true
eureka.instance.prefer-ip-address=true
eureka.client.register-with-eureka=true

eureka.instance.hostname=${HOST_NAME}
eureka.instance.secure-port=${SECURE_PORT}
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${eureka.instance.secure-port}/eureka/
0

There are 0 answers