У меня странная проблема, я создаю DockerFile для каждого из моих сервисов (spring-cloud, eureka, my-service), поэтому, когда я запускаю docker compose, запускается весенний облачный сервер, eureka запускается, но мой Приложение не может получить конфигурацию из весеннего облака, но когда я получаю доступ к URL-адресу, который отображается в журнале, он работает, у меня нет идей о том, как решить эту проблему.
Следуйте моим DockerFiles:
файл Docker облачного источника
FROM openjdk:11.0.2-jre-stretch
RUN ["mkdir", "/root/remote-config-service"]
COPY target/remote-config-service-0.0.1-SNAPSHOT.jar /root/remote-config-service/
ENTRYPOINT java -jar /root/remote-config-service/remote-config-service-0.0.1-SNAPSHOT.jar
EXPOSE 9000 9001
Файл eureka Docker:
FROM openjdk:11.0.2-jre-stretch
RUN ["mkdir", "/root/eureka-service-discovery"]
COPY target/eureka-service-discovery-0.0.1-SNAPSHOT.jar /root/eureka-service-discovery/
ENTRYPOINT java -jar /root/eureka-service-discovery/eureka-service-discovery-0.0.1-SNAPSHOT.jar
EXPOSE 8761
Файл Docker моего приложения:
FROM openjdk:11.0.2-jre-stretch
ENV PROFILE="dev"
ADD ["target/product-api-0.0.1-SNAPSHOT.jar", "product-api-0.0.1-SNAPSHOT.jar"]
EXPOSE 18100 8091
RUN sh -c 'touch /product-api-0.0.1-SNAPSHOT.jar'
ENTRYPOINT [ "sh", "-c", "java -Djava.security.egd=file:/dev/./urandom -Dspring.profiles.active=$PROFILE -jar /product-api-0.0.1-SNAPSHOT.jar" ]
HEALTHCHECK --interval=5m --timeout=3s \
CMD curl -f http://localhost:8091/actuator/health || exit 1
Docker compose
remote-config-service:
container_name: remote-config-service
build: ./remote-config-service
ports:
- 9000:9000
- 9001:9001
depends_on:
- mysqldb
eureka-service-discovery:
build: ./eureka-service-discovery
container_name: eureka-service-discovery
hostname: localhost
restart: on-failure
ports:
- 8761:8761
product-api:
container_name: product-api
build: ./product-api
ports:
- 18000:18000
- 8091:8091
depends_on:
- eureka-service-discovery
- remote-config-service
- mysqldb
restart: on-failure
когда я пытаюсь запустить свое приложение (product-api), я сталкиваюсь с этой ошибкой:
c.c.c.ConfigServicePropertySourceLocator : Fetching config from server at : http://localhost:9000
c.c.c.ConfigServicePropertySourceLocator : Connect Timeout Exception on Url - http://localhost:9000. Will be trying the next url if available
c.c.c.ConfigServicePropertySourceLocator : Could not locate PropertySource: I/O error on GET request for "http://localhost:9000/product-api/dev": Connection refused (Connection refused); nested exception is java.net.ConnectException: Connection refused (Connection refused)
но когда я получаю доступ к этому URL в моем браузере:
http://localhost:9000/product-api/dev
отлично работает.
У кого-нибудь есть идея помочь мне с этой проблемой?