.NET Core 5 Anwendung unter Linux (Ubuntu) – Teil 1

Die Bereitstellung einer .NET Core Anwendungen zur Produktion erfolgt üblicherweise unter Microsoft Azure oder beispielsweise auf einem Windows Server mit dem IIS. In diesem Beitrag wird eine alternative Bereitstellung einer .NET Core Anwendung unter Linux (Ubuntu) mit nginx beschrieben, die sich für Heimanwendungen, Demos oder Präsentationen eignet.

Die in dieser Artikelreihe verwendete Umgebung besteht aus folgenden Komponenten

  • Proxmox Virtualisierungsserver
  • Ubuntu 21.04 LXC mit nginx Webserver
  • MS SQL Server unter Linux (in Docker, SQL Server auf Docker Hub)
  • nginx Proxy Manager (in Docker)

Installation von Ubuntu 21.04 in einem Proxmox LXC

Für die Installation wird Ubuntu 21.04 verwendet. Die Version 20.10 wird zum aktuellen Zeitpunkt nicht mehr unterstützt.

Ubuntu 21.04 wird auf einem dedizierten Server oder, wie in diesem Beispiel, unter Proxmox installiert. Laden Sie sich unter Proxmox das entsprechende LXC Template herunter und erstellen Sie einen LXC mit folgenden Einstellungen:

  • Ubuntu 21.04 LXC Template
  • 2 GB RAM, 512 MB Swap
  • 1 Core
  • 50 GB Speicherplatz

Starten Sie anschließend den LXC Container und loggen Sie sich ein.


Installation .NET Core 5 Runtime

Um die Installation der notwendigen Microsoft Pakete durchführen zu können, sind die Microsoft-Paketsignaturschlüssel zu der Liste der vertrauenswürdigen Schlüssel sowie das Paketrepository hinzuzufügen

wget https://packages.microsoft.com/config/ubuntu/21.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

Zusätzlich muss der sichere Download verfügbar gemacht werden.

sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \

Je nach Anwendungsfall (ASP.NET Core oder nur .NET Core) sind die entsprechenden Runtimes zu installieren.

Die folgende Anweisung installiert die ASP.NET Core und die .NET Core Runtime:

sudo apt-get install -y aspnetcore-runtime-5.0

Die folgende Anweisung installiert nur die .NET Core Runtime:

sudo apt-get install -y dotnet-runtime-5.0

Die erfolgreiche Installation von .NET Core 5 sollte entsprechend folgender Versionsabfrage aussehen, hier wurde die aspnetcore-runtime-5.0 installiert:

root@dotnetapps:~# dotnet --info

Host (useful for support):
  Version: 5.0.9
  Commit:  208e377a53

.NET SDKs installed:
  No SDKs were found.

.NET runtimes installed:
  Microsoft.AspNetCore.App 5.0.9 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 5.0.9 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET runtimes or SDKs:
  https://aka.ms/dotnet-download

Installation nginx

An dieser Stelle wird nur die Standardinstallation von nginx beschrieben. Die notwendigen Konfigurationen für die Ausführung von .NET Core Anwendungen wird in Teil 2 beschrieben.

sudo apt install nginx

Die erfolgreiche Installation wird wie folgt geprüft:

root@dotnetapps:~# systemctl status nginx
* nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2021-08-30 11:50:00 UTC; 2h 21min ago
       Docs: man:nginx(8)
    Process: 902 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 904 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 905 (nginx)
      Tasks: 2 (limit: 38066)
     Memory: 2.6M
        CPU: 34ms
     CGroup: /system.slice/nginx.service
             |-905 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             `-906 nginx: worker process

Aug 30 11:50:00 dotnetapps systemd[1]: Starting A high performance web server and a reverse proxy server...
Aug 30 11:50:00 dotnetapps systemd[1]: Started A high performance web server and a reverse proxy server.

Im Gegensatz zu einem Deployment in Azure oder auf einem IIS (One Click Deployment) benötigt die Bereitstellung unter Linux etwas mehr Vorbereitung sowie zusätzliche Einstellungen in der Linux Zielumgebung.

Die Erstellung und Verteilung der .NET Core Anwendung wird in Teil 2 dieser Reihe behandelt.

Ein Gedanke zu „.NET Core 5 Anwendung unter Linux (Ubuntu) – Teil 1

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.