У меня Eureka из Spring Cloud запускается внутри контейнера докеров. Это мой Dockerfile для создания и демонстрации Eureka:
FROM maven:3.5-jdk-8 AS build
COPY src /home/eureka/src
COPY pom.xml /home/eureka
RUN mvn -f /home/eureka/pom.xml clean package
FROM openjdk:8-jdk-alpine
COPY --from=build /home/eureka/target/service-registry-1.0-SNAPSHOT.jar /usr/app/service-registry-1.0-SNAPSHOT.jar
ENTRYPOINT ["java","-jar","/usr/app/service-registry-1.0-SNAPSHOT.jar"]
EXPOSE 8761
Это мой файл компоновки докеров:
version: '2.1'
services:
eureka-service-registry-app:
build: eureka-service-registry-app
ports:
- "8761-8761"
В инфраструктуре будут еще приложения, но пока они комментируются.
Я запускаю docker-compose up, процесс выглядит нормально, но когда я хочу проверить веб-панель Eureka по локальному хосту: 8761, этот хост недоступен. Хм, хорошо. В списке моих контейнеров я вижу следующее:
0.0.0.0:32772->8761/tcp
и localhost:32772 доступен, и Эврика жива. Более того, если я снова запущу docker-compose, этот порт будет увеличен, и новый порт, где будет доступна Eureka, будет 32773. Таким образом, я вижу там некоторую схему, но я не понимаю, как сделать этот порт стабильным и регулярным, как это было с Eureka. запустился без Docker на 8761




Вы определяете диапазон портов с помощью
ports:
- "8761-8761"
Пожалуйста, измените его на
ports:
- "8761:8761"
Как уже указывали другие: порт, отображаемый в docker-compose.yml, должен быть изменен на
-"8761:8761".
Однако я вижу больше моментов в этом.
Порт Eureka по умолчанию (насколько я знаю) 1111. Вы выставляете правильный порт?
Кроме того, будьте осторожны при использовании eureka в сочетании с докером. Они могут зарегистрироваться с помощью локального хоста или своего внутреннего IP-адреса из Контейнер Docker, который может быть недоступен из других контейнеров Docker.
Попробуйте взглянуть на следующие свойства приложения (или переменные среды):
eureka.instance.prefer-ip-address=false
eureka.instance.ip-address=$HOST_IP_ADDRESS
eureka.instance.hostname=localhost
Нет, стандартный порт Юрики 8611.