dockerocelot

ocelot redirect to internal container failed


so I have a console app that needs to call the backend running on docker. i'm using ocelot for api gateway and an api.

when I do a test call in postman to my gateway, the request come in and ocelot tries to redirect to the api, but I get a ENOTFOUND.

I'm using the docker-compose name, and I also tried with the container-name.

ocelot config:

{
  "Routes": [
    {
      "DownstreamPathTemplate": "/api/fileagent",
      "DownstreamScheme": "http",
      "DownstreamHostAndPorts": [
        {
          "Host": "fileagentapi",
          "Port": 80
        }
      ],
      "UpstreamPathTemplate": "/fileagent",
      "UpstreamHttpMethod": [ "POST"]      
    }
  ],
  "GlobalConfiguration": {
    "RequestIdKey": "ocRequestId"
    
  }
}

port 80 is the internal docker container port.

docker-compose config:

version: '3.4'

services:
  fileagentapi:
    image: ${DOCKER_REGISTRY-}fileagentapi
    container_name: FileAgentApi
    build:
      context: .
      dockerfile: Services/FileAgentApi/Dockerfile

  gateways:
    image: ${DOCKER_REGISTRY-}gateways
    build:
      context: .
      dockerfile: Api-Gateways/Gateways/Dockerfile
    ports:
      - 50000:443
      - 50001:80

Solution

  • After a long time but I have found my problem.

    In my program file -> I still had the app.UseHttpsRedirect() enabled. This will not work when testing in http.