es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

IDX20803: No se puede obtener la configuración al dockerizar el proyecto.

Tengo 2 proyectos, IdentityServer y bankAccount.api.

Dirección de IdentityServer: https://localhost:5001
Dirección de bankaccount: http://localhost:5005

Cuando el proyecto se ejecuta fuera de Docker, todo funciona bien y todos los endpoints en bankaccount.api se ejecutan utilizando tokens recibidos de identityserver. Ahora, cuando ejecutamos los proyectos en Docker, aparece el siguiente error:

IDX20803: No se puede obtener la configuración de: ‘https://localhost:5001/.well-known/openid-configuration’.

Configuraciones del archivo Yml:

identityserver:
container_name: identityserver
environment:
– ASPNETCORE_ENVIRONMENT=Development
– “ConnectionStrings:DefaultConnection=Server=sqlsrvdb;Database=IdentityDb;User Id=sa;Password=123456”
– “Data:Seed=true”
– ASPNETCORE_URLS=https://+:443
– ASPNETCORE_HTTPS_PORT=5001
– ASPNETCORE_Kestrel__Certificates__Default__Password=password
– ASPNETCORE_Kestrel__Certificates__Default__Path=/https/identityserver.pfx
depends_on:
– sqlsrvdb
ports:
– “5001:443”
volumes:
– ~/.aspnet/https:/https:ro

bankaccount.api:
container_name: bankaccount.api
environment:
– ASPNETCORE_ENVIRONMENT=Development
– “ConnectionStrings:DefaultConnection=Server=sqlsrvdb;Database=AccountDb;User Id=sa;Password=123456”
– “GrpcSettings:CountryUrl=http://country.grpc”
– “GrpcSettings:CustomerUrl=http://customer.grpc”
– “GrpcSettings:CurrencyUrl=http://currency.grpc”
– “GrpcSettings:WalletUrl=http://wallet.grpc”
– “CacheSettings:ConnectionString=redisdb:6379”
– “CacheSettings:InstanceName=bankaccount-redis”
– “IdentityServer:Uri=https://identityserver”
depends_on:
– sqlsrvdb
ports:
– “5005:80”

Si solo ejecuto identityserver en Docker y el otro proyecto fuera de Docker, aún funciona correctamente.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El problema parece estar en el proyecto bankaccount.api no puede obtener la configuración del proyecto identityserver cuando ambos se ejecutan dentro de Docker. El mensaje de error indica que no se puede acceder al punto de conexión .well-known/openid-configuration.

    Una posible solución es modificar el archivo Docker Compose para que exponga el puerto 5001 del contenedor identityserver fuera de la red Docker agregando 5001:5001 a la configuración de puertos del contenedor identityserver.

    Otra posible solución es modificar la configuración del proyecto bankaccount.api para usar el nombre del contenedor como IdentityServer:Uri en lugar de https://identityserver`. En este caso, la configuración seríaIdentityServer:Uri=https://identityserver:5001`.

    Ambas soluciones asumen que la red Docker está configurada correctamente y que los contenedores pueden comunicarse entre sí.

Comments are closed.