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.

No se puede ejecutar la aplicación .NET Core 5.0 autocontenida.

Tengo una aplicación .NET Core 5.0 ASPNET Web API. Esta aplicación se ejecuta perfectamente localmente en Visual Studio.

Ahora estoy tratando de publicar la aplicación autocontenida utilizando el siguiente comando:

dotnet publish -c release testdb.sln --framework net5.0 --runtime linux-x64 /p:DebugType=None /p:DebugSymbols=false --nologo --self-contained true -v m

Estoy tratando de ejecutarlo en una imagen de Red Hat Linux (detalles de la imagen a continuación):

NOMBRE="Red Hat Enterprise Linux Server"
VERSIÓN="7.6 (Maipo)"
ID="rhel"
ID_SIMILAR="fedora"
VARIANTE="Server"
ID_VARIANTE="server"
VERSION_ID="7.6"
NOMBRE_BONITO="Red Hat Enterprise Linux Server 7.6 (Maipo)"
COLOR_ANSI="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:7.6:GA:server"
HOME_URL="https://www.redhat.com/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"

REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 7"
REDHAT_BUGZILLA_PRODUCT_VERSION=7.6
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="7.6"
Red Hat Enterprise Linux Server release 7.6 (Maipo)
Red Hat Enterprise Linux Server release 7.6 (Maipo)

Así es como se ve mi archivo Docker:

FROM testrepo.net/images/base/rhel:7.6

# El código publicado se copia dentro de la carpeta redhat
COPY redhat/  APP/
WORKDIR APP
RUN chmod +x /APP
RUN chmod +x testdb.dll
RUN chmod 777 /APP

ENTRYPOINT "./testdb.dll"

Cuando ejecuto esta imagen, obtengo el siguiente error: ./testdb.dll: no se puede ejecutar el archivo binario

No estoy seguro si esto se debe a una versión de entorno de ejecución inválida especificada durante el comando de publicación o si se debe a otra cosa.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Es posible que el error se deba a una versión no válida especificada durante el comando de publicación. Has especificado la versión como linux-x64, lo cual debería ser correcto para Red Hat Linux. Sin embargo, es recomendable verificar que el ID de versión (RID por sus siglas en inglés) para Red Hat 7.6 sea realmente linux-x64.

    Otro posible problema podría estar relacionado con los permisos chmod establecidos en el archivo Dockerfile. No está claro si el archivo testdb.dll tiene permisos de ejecución antes de ser copiado a la imagen. Es recomendable verificar esto y asegurarse de que los permisos estén configurados correctamente para que el archivo se pueda ejecutar.

    Además, vale la pena investigar más para determinar si se necesitan otras dependencias o configuraciones para que la aplicación funcione en Red Hat Linux. Esto podría incluir instalaciones de paquetes necesarios, variables de entorno u otras configuraciones.

    En resumen, solucionar este problema puede requerir una investigación adicional y experimentación para identificar la causa raíz del problema.

Comments are closed.