Neu in .NET 7.0 [16]: Anpassen des Docker-Deployments mit .NET CLI

Verschiedene Optionen für dotnet publish erlauben individuelle Anpassungen der ohne Dockerfile mit .NET CLI angelegten Docker-Deployments.

In Pocket speichern vorlesen Druckansicht

(Bild: lucadp/Shutterstock.com)

Lesezeit: 1 Min.
Von
  • Dr. Holger Schwichtenberg

Im vorherigen Teil dieser .NET-7.0-Serie wurde die Erweiterung von dotnet publish besprochen, mit der sich direkt Docker-Container aus .NET-Projekten erstellen lassen.

Der Dotnet-Doktor – Holger Schwichtenberg

Dr. Holger Schwichtenberg ist technischer Leiter des Expertennetzwerks www.IT-Visions.de, das mit 53 renommierten Experten zahlreiche mittlere und große Unternehmen durch Beratungen und Schulungen sowie bei der Softwareentwicklung unterstützt. Durch seine Auftritte auf zahlreichen nationalen und internationalen Fachkonferenzen sowie mehr als 90 Fachbücher und mehr als 1500 Fachartikel gehört Holger Schwichtenberg zu den bekanntesten Experten für .NET und Webtechniken in Deutschland.

Dazu genügen die folgenden zwei Befehle, wenn der aktuelle Konsolenpfad ein .NET-Projekt ist:

# Container-Build-Paket hinzufügen
dotnet add package Microsoft.NET.Build.Containers
# Veröffentlichen als Container
dotnet publish --os linux --arch x64 -c Release -p:PublishProfile=DefaultContainer

Das dabei automatisch verwendete Basisimage ("mcr.microsoft.com/dotnet/aspnet:7.0") basiert auf Debian. Mit der Option -p:ContainerBaseImage lässt sich ein anderes Image wie beispielsweise Alpine wählen:

dotnet publish --os linux --arch x64 -c Release
-p:PublishProfile=DefaultContainer 
-p:ContainerBaseImage=mcr.microsoft.com/dotnet/aspnet:7.0-alpine

Eine Liste aller Docker-Basisimages von Microsoft mit ASP.NET Core Runtime findet sich auf Docker Hub.

Heise-Konferenz: betterCode() .NET 8.0
betterCode() .NET 8.0, Online-Konferenz, 21. November 2023

Mit .NET 8.0 erscheint die nächste Long-Time-Support-Version. Am 21. November 2023 bietet die von Heise und www.IT-Visions.de präsentierte Online-Konferenz betterCode() .NET 8.0 das Rüstzeug, sich einen grundlegenden Überblick zu .NET 8.0 zu verschaffen. Die Expertenvorträge zeigen die Neuerungen in .NET 8.0, ASP.NET Core 8.0, Blazor 8.0, .NET MAUI, C# 12.0 und mehr. Vier ganztägige Workshops vermitteln Hands-on-Wissen.

Mit der Option -p:ContainerImageName lässt sich auch der Name des entstehenden Docker-Image ändern. Standardmäßig wird jeweils nur der Name des .NET-Projekts übernommen.

dotnet publish --os linux --arch x64 -c Release 
-p:PublishProfile=DefaultContainer 
-p:ContainerBaseImage=mcr.microsoft.com/dotnet/aspnet:7.0-alpine 
-p:ContainerImageName=MeinBlazorImage

Erläuterungen zum Einsatz weiterer Optionen, um beispielsweise eine andere Ziel-Registry (-p:ContainerRegistry) oder einen anderen Port (-p:ContainerPort) einzustellen, sind in der Dokumentation auf GitHub beschrieben.

(map)