So I have little problem here. I have 4 module:
- Eureka Server
- Zuul Gateway
- Authentication Service
- Another MicroService
When I starting it on a local computer it doesn't show any problem like
Caused by: com.netflix.client.ClientException: Load balancer does not have available server for client: authentication-service
But when I started building it on docker it's always getting error like that. Can you tell me the part that I'm wrong?
eureka server properties
spring.application.name=bms-server
# default port for eureka server
server.port=8761
eureka.instance.hostname=bms-server
# eureka by default will register itself as a client. So, we need to set it to false.
# What's a client server? See other microservices (student, auth, etc).
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
Zuul Server properties
server.port=8762
spring.application.name=bms-api-gateway
eureka.client.fetch-registry=true
eureka.client.service-url.defaultZone=http://bms-server:8761/eureka/
zuul.ignored-services=*
zuul.routes.authentication-service.path=/auth/**
zuul.routes.authentication-service.service-id=authentication-service
zuul.routes.general-setup-service.path=/general-setup/**
zuul.routes.general-setup-service.service-id=general-setup-service
zuul.routes.authentication-service.strip-prefix=false
zuul.routes.authentication-service.sensitive-headers=Cookie,Set-Cookie
zuul.retryable=true
zuul.ignored-headers=Access-Control-Allow-Credentials, Access-Control-Allow-Origin
ribbon.eureka.enabled=false
ribbon.ConnectTimeout=60000
ribbon.ReadTimeout=60000
hystrix.command.default.execution.enabled=false
hystrix.command.default.execution.isolation.strategy=THREAD
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=240000
Authentication service properties
spring.application.name=authentication-service
server.port=9100
eureka.client.service-url.defaultZone=http://bms-server:8761/eureka/
authentication-service.ribbon.listOfServers=http://localhost:9100
spring.cloud.loadbalancer.ribbon.enabled=false
this is my Another service properties
spring.application.name=authentication-service
server.port=9100
eureka.client.service-url.defaultZone=http://bms-server:8761/eureka/
general-setup-service.ribbon.listOfServers=http://localhost:9100
spring.cloud.loadbalancer.ribbon.enabled=false
And last this is my docker-compose.yml
version: '3.5'
services:
bms-server:
image: bms-server:v1
container_name: bms-server
hostname: bms-server
build:
context: ./bms-server
dockerfile: Dockerfile
volumes:
- maven-home:/root/.m2
ports:
- "8761:8761"
networks:
- bms-network
bms-api-gateway:
image: bms-api-gateway:v1
container_name: bms-api-gateway
build:
context: ./bms-api-gateway
dockerfile: Dockerfile
ports:
- "8762:8762"
depends_on:
- bms-server
volumes:
- maven-home:/root/.m2
links:
- bms-server:bms-server
hostname: bms-api-gateway
networks:
- bms-network
bms-authentication-service:
image: bms-authentication-service:v1
container_name: bms-authentication-service
build:
context: ./bms-authentication-service
dockerfile: Dockerfile
ports:
- "9100:9100"
volumes:
- maven-home:/root/.m2
depends_on:
- bms-server
links:
- bms-server:bms-server
hostname: authentication-service
networks:
- bms-network
bms-general-setup-service:
image: bms-general-setup-service:v1
container_name: bms-general-setup-service
build:
context: ./bms-general-setup-service
dockerfile: Dockerfile
ports:
- "9102:9102"
depends_on:
- bms-server
links:
- bms-server:bms-server
volumes:
- maven-home:/root/.m2
hostname: general-setup-service
networks:
- bms-network
volumes:
maven-home:
networks:
bms-network:
name: bms-network
driver: bridge
Please tell me the part that I'm wrong. Thank you very much.