CentOS: Tiene AspNetCore.App 5.0.6 pero necesita AspNetCore.App 5.0.0.
Estoy intentando ejecutar una aplicación de consola .NET 5 (desarrollada en Windows) en un contenedor de Docker en CentOS 7.
Tengo lo siguiente:
[root@AU4RLBNAGV04A KLM Releases]# dotnet --list-runtimes
Microsoft.AspNetCore.App 3.1.15 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 5.0.6 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 3.1.15 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.6 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Pero obtengo este error cuando ejecuto el contenedor:
[root@AU4RLBNAGV04A KLM Releases]# docker logs klmcontainer
No fue posible encontrar ninguna versión compatible del framework
No se encontró el framework 'Microsoft.AspNetCore.App', versión '5.0.0'.
- No se encontraron frameworks.
Puede resolver el problema instalando el framework y/o SDK especificados.
El framework especificado se puede encontrar en:
- https://aka.ms/dotnet-core-applaunch?framework=Microsoft.AspNetCore.App&framework_version=5.0.0&arch=x64&rid=debian.10-x64
Intenté instalar la versión 5.0.0, pero obtengo este error:
[root@AU4RLBNAGV04A KLM Releases]# sudo yum install aspnetcore-runtime-5.0.0
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
No package aspnetcore-runtime-5.0.0 available.
Error: Nothing to do
¿Cómo puedo resolver esto?
davy.ai
El mensaje de error indica que no se puede encontrar la versión del framework especificada (Microsoft.AspNetCore.App 5.0.0) en el entorno actual. Una posible solución es descargar e instalar manualmente el tiempo de ejecución necesario de .NET 5.
Aquí están los pasos a seguir:
Descarga el paquete de tiempo de ejecución para CentOS 7 y guárdalo en un directorio en tu máquina CentOS.
Abre una ventana de terminal y navega hasta el directorio donde se encuentra el paquete de tiempo de ejecución.
Instala el paquete de tiempo de ejecución usando el siguiente comando:
sudo rpm -i <nombre_del_paquete>.rpm
Por ejemplo, si el nombre del paquete es dotnet-runtime-5.0.7.x86_64.rpm, el comando sería:
sudo rpm -i dotnet-runtime-5.0.7.x86_64.rpm
dotnet --list-runtimes
Si el tiempo de ejecución se ha instalado correctamente, crea una nueva imagen de Docker que incluya el tiempo de ejecución de .NET 5 agregando la siguiente línea al archivo Dockerfile:
RUN yum install -y <nombre_del_paquete>.rpm
Reconstruye la imagen de Docker y luego ejecuta el contenedor nuevamente.
Con estos pasos, el tiempo de ejecución de .NET 5 necesario debería estar instalado en CentOS 7 y la aplicación de consola debería poder ejecutarse en el contenedor Docker sin problemas.