docker-compose проблема с проверкой работоспособности

В настоящее время я работаю над проектом микросервиса, используя docker-compose. Поэтому я добавлял проверки работоспособности в свои контейнеры. Но, кроме mysql, все остальное остается неработоспособным, но я не знаю, почему.

Вот мой файл docker-compose.yml.

version: "3"
services:
  zookeeper:
    image: wurstmeister/zookeeper
    container_name: zookeeper
    ports:
      - "2181:2181"

  kafka:
    image: wurstmeister/kafka
    container_name: kafka
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: 52.78.52.254
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    depends_on:
      - zookeeper

  mysql:
    image: mysql
    container_name: mysql
    ports:
      - "3306:3306"
    volumes:
      - ./data/mysql:/var/lib/mysql:rw
    environment:
      - MYSQL_ROOT_PASSWORD=dnjscksdn98@
      - MYSQL_DATABASE=explanet_dev
      - MYSQL_USER=alex
      - MYSQL_PASSWORD=dnjscksdn98@
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "mysql", "-u$$MYSQL_USER", "-p$$MYSQL_ROOT_PASSWORD" ]
      interval: 30s
      timeout: 10s
      retries: 3

  api-gateway:
    container_name: api-gateway
    ports:
      - "80:80"
    build:
      context: ./api-gateway
      args:
        ENVIRONMENT: dev
      dockerfile: Dockerfile
    healthcheck:
      test: [ "CMD", "curl", "-f", "http://api-gateway/health-check" ]
      interval: 30s
      timeout: 10s
      retries: 3
    depends_on:
      - mysql

  chatting-service:
    container_name: chatting-service
    ports:
      - "8080:8080"
    build:
      context: ./chatting-service
      args:
        ENVIRONMENT: dev
      dockerfile: Dockerfile
    healthcheck:
      test: [ "CMD", "curl", "-f", "http://chatting-service:8080/health-check" ]
      interval: 30s
      timeout: 10s
      retries: 3
    depends_on:
      - mysql
      - kafka
      - api-gateway

И если я наберу docker inspect ${any container name}, это отобразится в State.

"Health": {
                "Status": "unhealthy",
                "FailingStreak": 12,
                "Log": [
                    {
                        "Start": "2020-12-01T04:47:28.090046668Z",
                        "End": "2020-12-01T04:47:28.158193366Z",
                        "ExitCode": -1,
                        "Output": "OCI runtime exec failed: exec failed: container_linux.go:349: starting container process caused \"exec: \\\"curl\\\": executable file not found in $PATH\": unknown"
                    },
                    {
                        "Start": "2020-12-01T04:47:58.162656864Z",
                        "End": "2020-12-01T04:47:58.233280387Z",
                        "ExitCode": -1,
                        "Output": "OCI runtime exec failed: exec failed: container_linux.go:349: starting container process caused \"exec: \\\"curl\\\": executable file not found in $PATH\": unknown"
                    },
                    {
                        "Start": "2020-12-01T04:48:28.238446336Z",
                        "End": "2020-12-01T04:48:28.325520772Z",
                        "ExitCode": -1,
                        "Output": "OCI runtime exec failed: exec failed: container_linux.go:349: starting container process caused \"exec: \\\"curl\\\": executable file not found in $PATH\": unknown"
                    },
                    {
                        "Start": "2020-12-01T04:48:58.330407168Z",
                        "End": "2020-12-01T04:48:58.398503364Z",
                        "ExitCode": -1,
                        "Output": "OCI runtime exec failed: exec failed: container_linux.go:349: starting container process caused \"exec: \\\"curl\\\": executable file not found in $PATH\": unknown"
                    },
                    {
                        "Start": "2020-12-01T04:49:28.403163576Z",
                        "End": "2020-12-01T04:49:28.477627297Z",
                        "ExitCode": -1,
                        "Output": "OCI runtime exec failed: exec failed: container_linux.go:349: starting container process caused \"exec: \\\"curl\\\": executable file not found in $PATH\": unknown"
                    }
                ]
            }

Мой java Dockerfile выглядит так.

FROM adoptopenjdk/openjdk11:alpine-jre
COPY build/libs/base-service-0.0.1-SNAPSHOT.jar base-service.jar
ARG ENVIRONMENT
ENV SPRING_PROFILES_ACTIVE=${ENVIRONMENT}
ENTRYPOINT ["java", "-jar", "base-service.jar"]

В настоящее время я работаю на сервере Ubuntu 20.04. Есть ли решения?


person Alex Won    schedule 01.12.2020    source источник
comment
Вы уверены, что ваши ссылки для проверки работоспособности работают нормально?   -  person dahiya_boy    schedule 01.12.2020


Ответы (1)


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

person Jonathan privé    schedule 01.12.2020
comment
Это было оно..!! Спасибо???????? - person Alex Won; 02.12.2020