Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Lesedauer 2 Min.

.NET 8: Container-Bauen und -Veröffentlichen ganz einfach

Unter .NET 8 lassen sich Container für Konsolenanwendungen über den Befehl "dotnet publish" erzeugen.
Mit der Neuerscheinung von .NET 8 macht die Container-Nutzung einen großen Schritt nach vorn. Die neue Version punktet mit deutlichen Verbesserungen in den Bereichen Performance, Sicherheit und Usability. Über mehrere Versionen hinweg hat Microsoft daran gearbeitet, .NET zur benutzerfreundlichsten und sichersten Container-Plattform zu machen. Builds ohne Root-Rechte, kleinere Image-Größen und die integrierte Veröffentlichung von Images. Darüber hinaus hat Microsoft einige essenzielle Funktionen realisiert, die für erweiterte Workflows unabdingbar sind. Mittlerweile empfiehlt sich dotnet publish als bevorzugter Weg zur Container-Veröffentlichung. Diese Herangehensweise macht das Erzeugen von Images besonders einfach. 

Docker

Dockerfiles erfreuen sich großer Beliebtheit; Microsoft stellt weiterhin umfangreiche Beispiele dafür bereit, einschließlich Tipps, wie man komplexe Szenarien wie Non-Root ermöglicht. Es ist nun möglich, docker init in einem .NET-Projektverzeichnis auszuführen, um ein funktionierendes Dockerfile zu erstellen. Mit wenigen Befehlen an der Kommandozeile wird ein Container für eine Konsolenanwendung erzeugt: 
$ dotnet new console -o myapp
$ cd myapp
$ dotnet publish -t:PublishContainer -p:EnableSdkContainerSupport=true
  Building image 'myapp' with tags 'latest' on top of base image 'mcr.microsoft.com/dotnet/runtime:8.0'.
  Pushed image 'myapp:latest' to local registry via 'docker'.
$ docker run --rm myapp
Hello, World! 
Die EnableSdkContainerSupport-Eigenschaft für die Veröffentlichung von Konsolenprojekten als Containerbilder ist erforderlich. Standardmäßig ist sie für Konsolen-Apps (oder jede andere App, die das Microsoft.NET.Sdk verwendet) nicht gesetzt. In ASP.NET Core-Apps ist diese implizit gesetzt. Diese Eigenschaft kann in einer Projektdatei enthalten sein (empfohlen) oder über die CLI gesetzt werden (wie oben gezeigt).Weitere Informationen

Neueste Beiträge

Generative AI und Python - Python und AI, Teil 4
Generative KI mit Python nutzen und so die Basis für eigene Anwendungen schaffen.
7 Minuten
DDC hakt nach: Hör auf, Dich über Verbindungsstrings zu ärgern
Die App läuft lokal wie geschmiert, aber sobald Backend-Services ins Spiel kommen, stottert die Maschine. Connection Strings, die nicht wollen. Emulator-Konfigurationen, die nerven. Johan Smarius erklärt im Interview und auf der .NET Developer Conference 2025, wie es anders - und viel besser geht.
4 Minuten
10. Nov 2025
Hierarchische Testdata-Builder - Testdata-Builder, Teil 1
Lesbare Tests bei tiefen Objekthierarchien mit dem Collection-Builder-Pattern.
4 Minuten
Miscellaneous

Das könnte Dich auch interessieren

Benchmark im Unit-Test-Stil - Best of NuGet, Teil 4
NuGet-Pakete können das Leben des .NET-Entwicklers sogar um neue Werkzeuge erweitern, die sich auf den Entwicklungsworkflow (und nicht den bearbeiteten Code) auswirken. Mit BenchmarkDotNet steht ein Musterbeispiel dieses Konzepts zur Verfügung, das die Überprüfung der Performance von Code aller Arten ermöglicht.
7 Minuten
16. Okt 2025
Attraktives GUI mit Spectre.Console - Best of NuGet, Teil 6
Mit der Bibliotheksfamilie Spectre.Console steht ein neues Produkt ante portas, das die Realisierung von visuell ansprechenden Kommandozeileninterfaces zu erleichtern sucht.
7 Minuten
29. Okt 2025
Loggingdaten-Einlaufstelle mit Komfortfunktionen - Best of NuGet, Teil 5
Die in Android implementierte Logging-Funktion ist ein leistungsfähiges Beispiel für moderne Logging-Systeme. Mit Serilog steht ein ähnliches System für .NET-Applikationen zur Verfügung, das allerdings einige weit über das große Vorbild hinausgehende Funktionen offeriert.
6 Minuten
22. Okt 2025
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige