为什么我的服务在 docker compose 文件中添加依赖时没有启动

问题描述 投票:0回答:1

即使 eurekaserver 启动,AngularGenerator 服务也没有启动。

services:

  eurekaserver:
    image: clay404/eurekaserver:v1
    container_name: eurekaserver
    ports:
      - "8070:8070"
    healthcheck:
      test: "curl --fail --silent localhost:8070/actuator/health/readiness | grep UP || exit 1"
      interval: 20s
      timeout: 5s
      retries: 20
      start_period: 10s
    deploy:
      resources:
        limits:
          memory: 700m
    networks:
      - archworker

  angulargenerator:
    image: clay404/angulargenerator:v1
    container_name: angulargenerator
    ports:
      - "9081:9081"
    deploy:
      resources:
        limits:
          memory: 700m
    depends_on:
      eurekaserver:
        condition: service_healthy
    networks:
      - archworker

networks:
  archworker:
    driver: "bridge"

这是返回状态 UP

curl --fail --silent localhost:8070/actuator/health/readiness | grep UP

如果我删除 AngularGenerator 中的依赖项,两者会同时启动,这是我不希望的,我希望 AngularGenerator 等待 EurekaServer 健康

这是我的 eurekaserver 属性文件

spring.application.name=eurekaserver

server.port=8070

eureka.instance.hostname=localhost
eureka.client.fetchRegistry=false
eureka.client.registerWithEureka=false
eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/


management.endpoints.web.exposure.include=*
management.health.readiness-state.enabled=true
management.health.liveness-state.enabled=true
management.endpoint.health.probes.enabled=true

和角度的性质

spring.application.name=angulargenerator

server.port=9081

eureka.instance.prefer-ip-address=true
eureka.client.fetchRegistry=true
eureka.client.registerWithEureka=true
eureka.client.serviceUrl.defaultZone=http://localhost:8070/eureka/

management.info.env.enabled=true
management.endpoints.web.exposure.include=*
management.endpoint.shutdown.enabled=true

info.app.name=angulargenerator
info.app.description=This is a sample application for generating Angular microservice
info.app.version=1.0.0

docker docker-compose
1个回答
0
投票

我找到了解决办法 我的映像中未安装 Curl,因此必须安装它。

FROM openjdk:17-jdk-slim

MAINTAINER shahbytes.com

# Install curl and wget
RUN apt-get update && apt-get install -y curl wget && apt-get clean && rm -rf /var/lib/apt/lists/*

COPY target/eurekaserver-0.0.1-SNAPSHOT.jar eurekaserver-0.0.1-SNAPSHOT.jar

ENTRYPOINT ["java","-jar","eurekaserver-0.0.1-SNAPSHOT.jar"]

© www.soinside.com 2019 - 2024. All rights reserved.