Scrivere e mantenere un Dockerfile per ogni progetto .NET non è più necessario: l'SDK sa costruire l'immagine da solo, partendo dalle informazioni del progetto.
Un comando
dotnet publish -c Release --os linux --arch x64 -t:PublishContainer
Il risultato è un'immagine nel motore container locale, con il nome del progetto. Per le applicazioni web funziona senza configurazione; per le applicazioni console si attiva con la proprietà EnableSdkContainerSupport.
Personalizzare l'immagine
<PropertyGroup>
<ContainerRepository>azienda/catalogo-api</ContainerRepository>
<ContainerImageTags>1.4.0;latest</ContainerImageTags>
<ContainerFamily>noble-chiseled</ContainerFamily>
</PropertyGroup>
Le immagini chiseled contengono solo il minimo indispensabile per eseguire l'applicazione: niente shell, niente gestore di pacchetti. Sono più piccole e offrono molta meno superficie d'attacco.
Sicurezza di default
Le immagini .NET recenti eseguono l'applicazione con un utente non privilegiato e la porta predefinita è la 8080, che non richiede permessi di amministratore. Sono scelte che riducono i danni in caso di vulnerabilità.
Pubblicare su un registro
dotnet publish -c Release -t:PublishContainer \
-p:ContainerRegistry=registro.azienda.it \
-p:ContainerRepository=catalogo-api
Nelle pipeline di integrazione continua questo elimina un intero passaggio: niente Docker da installare sull'agente di build per creare l'immagine, e la stessa configurazione vive nel file di progetto, versionata insieme al codice.
Commenti (0)
Nessun commento ancora.