Problemas con los puertos de una aplicación, me dice que no escucha por el puerto 8181 sin haberlo utilizado

Jayro Guerreros Echias 0 Puntos de reputación
2025-11-19T15:11:35.8433333+00:00

Tengo una aplicación en .NET 8, en donde he expuesto los puertos 8080 y 8081(https) para contenedores en docker, he subido la imagen a Azure y configurado puertos para 8080 y me sale error.

Puntualmente el error dice:
Deployment Progress Deadline Exceeded. 0/1 replicas ready. The TargetPort 8080 does not match the listening port 8181.

El tema es que en ninguna parte uso ese 8181 y he probado por todos los lados y no encuentro solución

Azure Container Apps
Azure Container Apps

Un servicio de Azure que proporciona una plataforma de contenedor sin servidor de uso general.


3 respuestas

Ordenar por: Lo más útil
  1. Siddhesh Desai 8,210 Puntos de reputación Personal externo de Microsoft Moderador
    2025-11-20T13:00:31.2433333+00:00

    Hola Jayro Guerreros Echias,

    Gracias por contactar con Microsoft Q&A.

    El puerto de destino 8080 no coincide con el puerto de escucha 8181.

    Este error se produce si su aplicación está expuesta al puerto 8181, pero ha habilitado el puerto 8080 en la configuración de entrada de su aplicación en contenedor.

    Asegúrese de habilitar el puerto 8181 en la configuración de entrada en lugar del puerto 8080, ya que su aplicación se ejecuta en el puerto 8181, no en el 8080, como se muestra a continuación:

    --image xxxxx/test:v1 --target-port 8181
    

    Comando CLI:

    az containerapp create --name app-clinic-api --resource-group rg-depilzone --environment env-depilzone --image xxxxx/test:v1 --target-port 8181 --ingress external ...xxxx
    

    Imagen del usuario

    Consulte la solución en este documento para el mismo error: Container Apps - ‘Target port does not match the listening port’ -

    Si desea que su aplicación se ejecute en un puerto específico, por ejemplo, el puerto 8080, consulte uno de los métodos a continuación:

    Método 1:

    DockerImage:

    FROM base AS final
    WORKDIR /app
    # Bind ASP.NET Core to 0.0.0.0:8080 explicitly
    ENV ASPNETCORE_URLS=http://0.0.0.0:8080
    # Optional but common in containers
    ENV DOTNET_RUNNING_IN_CONTAINER=true
    

    Ver: https://stackoverflow.com/questions/60546843/aspnetcore-urls-not-being-applied-deploying-in-docker-container

    Método 2:

    Agregue variables de entorno (--env-vars) al implementar su aplicación en un contenedor, como se muestra a continuación:

    az containerapp create
    --name app-clinic-api
    --resource-group rg-depilzone
    --environment env-depilzone
    --image <acr-name>.azurecr.io/depilzone/api:fixed
    --ingress external
    --target-port 8080
    --registry-server <acr-name>.azurecr.io
    --env-vars ASPNETCORE_URLS=http://0.0.0.0:8080
    

    Método 3:

    Modifique sus archivos Program.cs y appsettings.json de .NET 8 para que se ejecuten en un puerto específico:

    Program.cs:

    var builder = WebApplication.CreateBuilder(args);
    builder.WebHost.UseUrls("http://0.0.0.0:8080"); // Forzar el puerto 8080
    var app = builder.Build();
    app.MapGet("/", () => "OK");
    

    appsettings.json:

    {
    "Kestrel": {
    "Endpoints": {
    "Http": {
    "Url": "http://0.0.0.0:8080"
    }
    }
    }
    }
    

    ¿Le resultó útil esta respuesta?

    0 comentarios No hay comentarios

  2. Jayro Guerreros Echias 0 Puntos de reputación
    2025-11-19T16:31:25.66+00:00

    estoy exponiendo el puerto 8080 en mi docker file:

    # Consulte https://aka.ms/customizecontainer para aprender a personalizar su contenedor de depuración y cómo Visual Studio usa este Dockerfile para compilar sus imágenes para una depuración más rápida.

    # Esta fase se usa cuando se ejecuta desde VS en modo rápido (valor predeterminado para la configuración de depuración)

    FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base

    USER $APP_UID

    WORKDIR /app

    EXPOSE 8080

    EXPOSE 8081

    # Esta fase se usa para compilar el proyecto de servicio

    FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build

    ARG BUILD_CONFIGURATION=Release

    WORKDIR /src

    COPY ["DepilZone.Api/DepilZone.Api.csproj", "DepilZone.Api/"]

    COPY ["DepilZone.Application/DepilZone.Application.csproj", "DepilZone.Application/"]

    COPY ["DepilZone.Domain/DepilZone.Domain.csproj", "DepilZone.Domain/"]

    COPY ["DepilZone.Entidad/DepilZone.Entidad.csproj", "DepilZone.Entidad/"]

    COPY ["DepilZone.Data/DepilZone.Data.csproj", "DepilZone.Data/"]

    RUN dotnet restore "./DepilZone.Api/DepilZone.Api.csproj"

    COPY . .

    WORKDIR "/src/DepilZone.Api"

    RUN dotnet build "./DepilZone.Api.csproj" -c $BUILD_CONFIGURATION -o /app/build

    # Esta fase se usa para publicar el proyecto de servicio que se copiará en la fase final.

    FROM build AS publish

    ARG BUILD_CONFIGURATION=Release

    RUN dotnet publish "./DepilZone.Api.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false

    # Esta fase se usa en producción o cuando se ejecuta desde VS en modo normal (valor predeterminado cuando no se usa la configuración de depuración)

    FROM base AS final

    WORKDIR /app

    COPY --from=publish /app/publish .

    ENTRYPOINT ["dotnet", "DepilZone.Api.dll"]

    y luego al crear mi contenedor :

    az containerapp create --name app-clinic-api --resource-group rg-depilzone --environment env-depilzone --image xxxxx/test:v1 --target-port 8080 --ingress external ...xxxx

    que otro detalle debería revisar?

    ¿Le resultó útil esta respuesta?

    0 comentarios No hay comentarios

  3. Rakesh Mishra 11,510 Puntos de reputación Personal externo de Microsoft Moderador
    2025-11-19T16:05:44.1166667+00:00

    Hola @Jayro Guerreros Echias ,

    ¡Bienvenido a la plataforma de preguntas y respuestas de Microsoft! Gracias por formular su pregunta aquí.

    Por favor, revise la información a continuación y comparta sus hallazgos.

    1. Comprueba tu configuración de Docker:
      • Asegúrese de que su Dockerfile exponga correctamente los puertos adecuados. Por ejemplo, si su aplicación está escuchando en el puerto 8080, debería tener la siguiente línea en su Dockerfile:
             EXPOSE 8080
        
      • Además, asegúrese de que su aplicación dentro del contenedor esté configurada para escuchar en el mismo puerto (8080). Si por algún motivo está configurada para escuchar en el puerto 8181, deberá actualizarla para que coincida.
    2. Actualizar el enrutamiento del tráfico entrante:
      • Asegúrese de que la configuración de entrada de su aplicación de contenedor de Azure apunte al puerto de destino correcto (8080). Esto es fundamental para enrutar correctamente las solicitudes externas.
    3. Utilice Azure Diagnostics:
      • Utilice Azure Portal para diagnosticar problemas seleccionando "Diagnosticar y resolver problemas" para su aplicación en contenedor. Busque problemas de disponibilidad y rendimiento, en concreto, revise la configuración del puerto de entrada de las aplicaciones en contenedor para obtener información detallada.
    4. Revisar las variables de entorno:
      • Si has configurado la variable de entorno WEBSITES_PORT, asegúrate de que coincida con el puerto en el que escucha tu aplicación. Dado que mencionaste HTTPS, verifica que todo esté configurado correctamente.
    5. Escalar y reiniciar:
      • Si realizaste cambios, intenta reducir la escala a cero y luego volver a aumentarla, o reiniciar la revisión afectada. A veces, esto puede ayudar a aplicar correctamente la nueva configuración.

    Referencias:

    ¿Le resultó útil esta respuesta?

    0 comentarios No hay comentarios

Su respuesta

Las respuestas pueden ser marcadas como Respuestas aceptadas por el autor de la pregunta, lo que indica a los usuarios que la respuesta resolvió su problema.