J'ai un projet d'application Web .NET Core dans lequel j'ai choisi le mauvais système d'exploitation sous la case "Activer la prise en charge Docker":
Comment changer cela pour un projet existant? Et pour être clair, je veux cibler Linux, pas "Passer aux conteneurs Windows ..." dans le menu fixe.
4 Réponses :
Cela s'est avéré facile, et je l'ai fait en éditant le fichier csproj: Changement de
en
Je ne sais toujours pas où vous feriez cela à partir de Visual Studio (si possible).
Si un seul projet est présent dans la solution, je supprimerais le projet associé à docker-compose.dcproj et Dockerfile dans le projet API. Après cela, je ferais un clic droit et ajouterais à nouveau le support docker à ce projet.
Cela créerait un nouveau fichier docker avec l'image de base Linux.
Et le nouveau dcproj aura linux mentionné
<DockerTargetOS>Linux</DockerTargetOS>
Pour les projets ASP.NET Core ciblant .NET Core, il existe deux options pour ajouter la prise en charge de Docker via les outils. Ouvrez le projet dans Visual Studio et choisissez l'une des options suivantes:
vous devriez voir une fenêtre comme celle-ci
Et sélectionnez le système d'exploitation souhaité.
Vous pouvez trouver plus d'informations ICI
Dans mon cas, j'utilise un projet d'API .Net Core 3.1 et la simple modification du fichier de projet n'a pas fonctionné. J'ai également dû indiquer que l'image du docker était différente. Voici ce que j'ai fait:
Dans l'Explorateur de solutions, faites un clic droit sur le projet, sélectionnez "Décharger"
Faites un clic droit sur le projet, modifiez-le (Le fichier de projet peut également être édité à l'extérieur. Même clic droit, Ajouter, le support Docker a fonctionné une fois)
Comme mentionné par d'autres, modifiez:
À:
(remplacez uniquement "Windows" par "Linux")
Modifiez le nom de l'image. Modifiez le fichier appelé "Dockerfile". Changement:
DE mcr.microsoft.com/dotnet/core/aspnet:3.1-nanoserver-1903 AS base
À:
DE mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
J'ai également changé le nom de la compilation en conséquence. Modifié:
DE mcr.microsoft.com/dotnet/core/sdk:3.1-nanoserver-1903 AS build
À:
DE mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
Les noms des images peuvent être différents. Assurez-vous simplement de remplacer l'image Windows par l'image Linux.