0

I'm running a dotnet GRPC API (recipients-api) and I want to use grpcui to test it. Both services are been declared on a docker-compose file. I'm declaring grpcui as a dependant service of recipients-api, and as I need it to be fully available before grpcui can run, I'm also using a health probe to ensure it's alive. The problem is that it seems like recipients-api entry point is not been run, it's like the process were stuck waiting for the health check to be sucessfull before hiting the container entrypoint, so it alsways throws a timeout. Any clues?

Here is my docker-compose file:

version: '3.4'

services:
  recipientservice-api:
    image: ${DOCKER_REGISTRY-}dataintegrationrecipientserviceapi
    container_name: recipientservice-api
    build:
      context: ..
      dockerfile: ../src/DataIntegration.RecipientService.Api/Dockerfile
    environment:
      ASPNETCORE_ENVIRONMENT: "Development"
      ASPNETCORE_URLS: "http://+:5000"
      MongoDb__ConnectionString: mongodb://wfuser:MyPassw0rd_@mongodb:27017/RecipientService?tls=false
      MongoDb__"Database": "RecipientService"
    expose:
      - "5000"
    ports:
      - "5000:5000"
    depends_on:
      - mongodb
    networks:
      - recipients-network
    healthcheck:
      test: ["CMD", "bin/grpc_health_probe", "-connect-timeout 10s", "-rpc-timeout 4s", "-addr=localhost:5000"]
      interval: 2s
      retries: 5
      start_period: 15s
      timeout: 10s


  grpcui:
    image: fullstorydev/grpcui
    container_name: grpcui
    depends_on: 
      recipientservice-api:
        condition: service_healthy
    command:
      - -plaintext 
      - -vvv
      - recipientservice-api:5000
    networks:
      - recipients-network
    ports:
      - "8080:8080"

  mongodb:
    image: mongo:5.0
    container_name: "mongodb"
    hostname: mongodb
    environment:
      MONGO_INITDB_ROOT_USERNAME: admin
      MONGO_INITDB_ROOT_PASSWORD: MyPassw0rd_123
      MONGO_INITDB_DATABASE: RecipientService
    volumes:
      - mongo-recipients:/var/opt/mongodb
      - ./init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro
    ports:
      - "27017:27017"
    expose:
      - 27017
    networks:
      - recipients-network

networks:
    recipients-network:
      name: recipients-network
      driver: bridge
volumes:
  mongo-recipients:
Oscar
  • 13,594
  • 8
  • 47
  • 75

0 Answers0