Docker-Compose-Abhängigkeit von einem .Net-Dienst ruiniert seinen GesundheitscheckC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Docker-Compose-Abhängigkeit von einem .Net-Dienst ruiniert seinen Gesundheitscheck

Post by Anonymous »

Ich habe die folgende docker-compose.yaml, um meine Anwendung zu rollen. Wenn ich „depends_on“ zum Newseo-Dienst kommentiere, starten die Container ohne Probleme und alle Integritätsprüfungen werden bestanden. Wenn ich jedoch depend_on wieder hinzufüge, bleibt newseo.api beim Start hängen, es sind keine Protokolle vorhanden und es besteht keine Verbindung zu {url}/health.
Hier ist das Docker-Compose:

Code: Select all

services:
newsseo:
image: ${DOCKER_REGISTRY-}newsseo
build:
context: .
dockerfile: NewsSEO/Dockerfile
depends_on:
newsseo-api:
condition: service_healthy

newsseo-api:
image: ${DOCKER_REGISTRY-}newsseoapi
build:
context: .
dockerfile: NewsSEO.API/Dockerfile
depends_on:
postgres:
condition: service_healthy
healthcheck:
test: ["CMD-SHELL", "curl -k -f https://localhost:8081/health || exit 1"]
interval: 10s
timeout: 10s
retries: 3

postgres:
image: postgres:18.0
ports:
- "5432:5432"
environment:
POSTGRES_PASSWORD: "admin123"
POSTGRES_USER: "admin"
POSTGRES_DB: "news_db"
healthcheck:
test: ["CMD-SHELL", "pg_isready"]
interval: 10s
timeout: 10s
retries: 3
Ich habe Curl bereits in der Docker-Datei von newseo hinzugefügt:

Code: Select all

FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS base
USER root
RUN apt-get update && apt-get install -y curl
USER $APP_UID
WORKDIR /app
EXPOSE 8080
EXPOSE 8081
Healthcheck im Code von newsseo-api wird mit builder.Services.AddHealthChecks() und app.MapHealthChecks("health") hinzugefügt.
Dinge, die ich bereits versucht habe:
  • Ändern von https 8081 zu http 8080 im Healthcheck.
  • Erhöhung des Intervalls, Timeout und start_period.
  • Hinzufügen von restart: on-failure zu beiden Diensten.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post