Publicar dotnet con la opción –self-contained en un contenedor de Linux.
Hay dos formas de ejecutar una aplicación .net core en un contenedor basado en Linux.
- Obtener una imagen base que tenga el marco .net core instalado (sobre la imagen de Linux) y luego copiar el código utilizando dotnet publish.
- Usar una imagen base de Linux y luego copiar el tiempo de ejecución dot net y el código utilizando la opción
dotnet publish --self-contained
.–self-contained [true|false]
Publica el tiempo de ejecución .NET con su aplicación para que el tiempo de ejecución no tenga que instalarse en la máquina de destino. El valor predeterminado es verdadero si se especifica un identificador de tiempo de ejecución y el proyecto es un proyecto ejecutable (no un proyecto de biblioteca).
¿Hay alguna ventaja de usar una opción sobre la otra?
davy.ai
Sí, hay ventajas al utilizar una opción sobre la otra:
El uso de la opción
--self-contained
permite una mayor flexibilidad en términos del sistema operativo y la arquitectura de destino, ya que no depende de que el tiempo de ejecución de .NET Core esté instalado en la máquina de destino. Esta opción puede ser preferible si el entorno de destino no es muy conocido o si hay problemas de compatibilidad con el tiempo de ejecución de .NET Core en la máquina de destino. Sin embargo, esta opción puede dar lugar a un tamaño de imagen más grande y a tiempos de implementación más largos.En general, la elección entre las dos opciones dependerá de los requisitos específicos y preferencias del proyecto y su entorno de implementación.