Nano Hash - криптовалюты, майнинг, программирование

Сеть Docker не работает с eureka

У меня есть один сервер eureka внутри док-контейнера и другое приложение внутри другого док-контейнера. Я создал сеть, используя docker network create eureka-s1. Итак, я запускаю сервер eureka с помощью команды: docker run --network eureka-s1 --name eureka-server -p 8761:8761 f595acb214d5 Файл конфигурации сервера eureka выглядит следующим образом:

spring:
  application:
    name: discovery-service

eureka:
  instance:
    prefer-ip-address:true
    hostname:localhost

  client:
    eureka-server-connect-timeout-seconds: 5
    enabled: true
    fetch-registry: false
    register-with-eureka: false

server:
  port: 8761

Значит, работает нормально. Теперь, когда я запускаю свое приложение с помощью команды: docker run --network eureka-s1 --name first-service -p 8080:8080 c16b2442b890, приложение не регистрируется в eureka. Конфигурационный файл клиента выглядит следующим образом:

spring:
  application:
    name: first-service
server:
  port: 8080
eureka:
  client:
    fetch-registry: true
    serviceUrl:
      defaultZone: http://eureka-server:8761/eureka  

Может ли кто-нибудь указать на проблему здесь? Спасибо.

Редактировать: Eureka Server Dockerfile:

FROM openjdk:8
ADD target/cloud-eureka-discovery-service-1.0.0-SNAPSHOT.jar cloud-eureka-discovery-service-1.0.0-SNAPSHOT.jar
EXPOSE 8761
ENTRYPOINT ["java", "-jar", "cloud-eureka-discovery-service-1.0.0-SNAPSHOT.jar"]

Файл Docker клиента Eureka:

FROM openjdk:8
ADD target/first-service-0.0.1-SNAPSHOT.jar first-service-0.0.1-SNAPSHOT.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "first-service-0.0.1-SNAPSHOT.jar"]

  • Из контейнера приложения вы можете пинговать сервер eureka? 14.02.2020
  • Да, вот статистика: --- статистика пинга eureka-server --- 39 пакетов передано, 39 получено, 0% потери пакетов, время 962 мс rtt min/avg/max/mdev = 0,048/0,113/0,207/0,049 мс 14.02.2020
  • Тогда я предполагаю, что проблема заключается в конфигурации вашего сервера eureka. Я бы сделал несколько попыток с hostname:localhost. Вы можете изменить его на eureka-server вместо localhost или удалить его, если это не обязательно. Поищите возможные альтернативы в документации eureka от spring. 14.02.2020

Ответы:


1

Он отлично работает с docker-compose.

Ниже приведен файл docker-compose.yml.

version: '2.1'

services:
  eureka:
    build: ${PATH_TO_EUREKA_FOLDER}
    mem_limit: 350m
    networks:
        - my-network
    healthcheck:
      test: ["CMD", "curl", "-f", "http://eureka:8761"]
      interval: 30s
      timeout: 10s
      retries: 5

  client:
    build: ${PATH_TO_YOUR_CLIENT_FOLDER}
    mem_limit: 350m
    networks:
      - my-network
    links:
      - eureka
    depends_on:
      eureka:
        condition: service_healthy


networks:
  my-network:
    name: my-network

И добавьте обновление файла конфигурации клиента, как показано ниже:

spring:
    application:
        name: first-service
server:
    port: 8080
eureka:
    client:
        fetch-registry: true
        serviceUrl:
            defaultZone: http://eureka:8761/eureka

И обновите Dockerfile сервера eureka, как показано ниже:

FROM openjdk:8

RUN apt-get update
RUN apt-get install -y curl

EXPOSE 8761

ADD ./target/*.jar app.jar

ENTRYPOINT ["java","-jar","/app.jar"]

И рядом с docker-compose.yml запустить

docker-compose up --build

И не забудьте запустить mvn clean install вашего клиентского приложения.

14.02.2020
  • Не работает. Любые другие предложения? Я могу попробовать прописать и на отображаемый порт на машине, а не на контейнере. Любые предложения для этого? 14.02.2020
  • Вы можете опубликовать оба Dockerfile? 14.02.2020
  • Можете ли вы сказать мне, что пошло не так с запуском докера и почему это решение сработало? 17.02.2020
  • Я подозреваю, что ваша эврика не была открыта в той же сети, с помощью docker-compose мы указали одну и ту же сеть как для клиента, так и для приложения eureka. 21.02.2020
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..