Vlastnosti sestavení Nástroje kontejneru

Způsob sestavení projektů kontejneru v sadě Visual Studio můžete přizpůsobit nastavením vlastností, které nástroj MSBuild používá k sestavení projektu. Můžete například změnit název souboru Dockerfile, zadat značky a popisky pro vaše image, zadat další argumenty předané příkazům Dockeru a řídit, jestli Visual Studio provede určité optimalizace výkonu, například sestavení mimo prostředí kontejneru. Můžete také nastavit vlastnosti ladění, jako je název spustitelného souboru, a argumenty příkazového řádku, které chcete poskytnout.

Chcete-li nastavit hodnotu vlastnosti, upravte soubor projektu. Předpokládejme například, že váš soubor Dockerfile má název MyDockerfile. Vlastnost v souboru projektu můžete nastavit DockerfileFile následujícím způsobem.

<PropertyGroup>
   <DockerfileFile>MyDockerfile</DockerfileFile>
</PropertyGroup>

Nastavení vlastnosti můžete přidat do existujícího PropertyGroup elementu nebo pokud neexistuje, vytvořte nový PropertyGroup prvek.

Vlastnosti projektů sady .NET SDK

Tato část popisuje vlastnosti NÁSTROJE MSBuild, které se použijí při výběru typu sestavení kontejneru sady .NET SDK.

V souboru projektu, který je potřebný pro kontejnerizované projekty sady .NET SDK, EnableSdkContainerDebuggingje jen jedna vlastnost. Aby bylo možné povolit ladění, musí být pro projekty sady .NET SDK nastavená True .

<PropertyGroup>
   <EnableSdkContainerDebugging>True</EnableSdkContainerDebugging>
</PropertyGroup>

Vlastnosti projektů Dockerfile

Tato část popisuje vlastnosti NÁSTROJE MSBuild, které se použijí při výběru typu sestavení kontejneru Dockerfile.

Následující tabulka ukazuje vlastnosti NÁSTROJE MSBuild dostupné pro projekty Dockerfile. Verze balíčku NuGet se vztahuje na Microsoft.VisualStudio.Azure.Containers.Tools.Targets.

Název vlastnosti Popis Default value Verze balíčku NuGet
ContainerDevelopmentMode Určuje, jestli je povolená optimalizace "build-on-host" (ladění rychlého režimu). Povolené hodnoty jsou Fast a Regular. Rychlé 1.0.1872750 nebo novější
ContainerVsDbgPath Cesta pro ladicí program VSDBG. %USERPROFILE%\vsdbg\vs2017u5 1.0.1985401 nebo novější
DockerDebuggeeArguments Při ladění je ladicí program instruován k předání těchto argumentů do spuštěného spustitelného souboru. Nevztahuje se na projekty rozhraní .NET Framework ASP.NET 1.7.8 nebo novější
DockerDebuggeeProgram Při ladění se ladicí program dá pokyn ke spuštění tohoto spustitelného souboru. Pro projekty .NET Core a .NET 5 a novější: dotnet, ASP.NET projekty rozhraní .NET Framework: Nepoužitelné (služba IIS se vždy používá) 1.7.8 nebo novější
DockerDebuggeeKillProgram Tento příkaz slouží k ukončení spuštěného procesu v kontejneru. Nevztahuje se na projekty rozhraní .NET Framework ASP.NET 1.7.8 nebo novější
DockerDebuggeeWorkingDirectory Při ladění se ladicí program dá pokyn, aby tuto cestu použil jako pracovní adresář. C:\app (Windows) nebo /app (Linux) 1.7.8 nebo novější
DockerDefaultTargetOS Výchozí cílový operační systém používaný při vytváření image Dockeru. Nastavení v sadě Visual Studio 1.0.1985401 nebo novější
DockerImageLabels Výchozí sada popisků použitá pro image Dockeru. com.microsoft.created-by=visual-studio; com.microsoft.visual-studio.project-name=$(MSBuildProjectName) 1.5.4 nebo novější
DockerFastModeProjectMountDirectory V rychlém režimu tato vlastnost řídí, kde je výstupní adresář projektu připojený ke spuštěném kontejneru. C:\app (Windows) nebo /app (Linux) 1.9.2 nebo novější
DockerfileBuildArguments Další argumenty předané příkazu Docker build. Nevztahuje se. 1.0.1872750 nebo novější
DockerfileContext Výchozí kontext použitý při vytváření image Dockeru jako cesta vzhledem k souboru Dockerfile. Sada Visual Studio při přidání podpory Dockeru do projektu. V projektech rozhraní .NET Framework nastavte na "." (složka projektu) a v projektech .NET Core a .NET 5 a novějších je nastavená na relativní cestu ke složce řešení (obvykle ".."). 1.0.1872750 nebo novější
DockerfileFastModeStage Fáze souboru Dockerfile (tj. cíl), která se má použít při vytváření image v režimu ladění. První fáze nalezená v souboru Dockerfile (obvykle základní)
Soubor souboru Dockerfile Popisuje výchozí soubor Dockerfile, který se má použít k sestavení nebo spuštění kontejneru projektu. Tato hodnota může být cesta. Dockerfile 1.0.1872750 nebo novější
DockerfileRunArguments Další argumenty předané příkazu Docker Run . Nevztahuje se. 1.0.1872750 nebo novější
DockerfileRunEnvironmentFiles Seznam souborů prostředí oddělených středníkem použitý během spuštění Dockeru Nevztahuje se. 1.0.1872750 nebo novější
DockerfileTag Značka, která se má použít při vytváření image Dockeru. Při ladění se ke značce připojí ":d ev". Název sestavení po odstranění neosamocených znaků s následujícími pravidly:
Pokud je výsledná značka všechna číselná, vloží se jako předpona "image" (například obrázek2314).
Pokud je výsledná značka prázdný řetězec, použije se jako značka "image".
1.0.1872750 nebo novější

Příklad

Následující soubor projektu ukazuje příklady některých z těchto nastavení.

 <Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <UserSecretsId>feae72bf-2368-4487-b6c6-546c19338cb1</UserSecretsId>
    <DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
    <!-- In CI/CD scenarios, you might need to change the context. By default, Visual Studio uses the
         folder above the Dockerfile. The path is relative to the Dockerfile, so here the context is
         set to the same folder as the Dockerfile. -->
    <DockerfileContext>.</DockerfileContext>
    <!-- Set `docker run` arguments to mount a volume -->
    <DockerfileRunArguments>-v $(MSBuildProjectDirectory)/host-folder:/container-folder:ro</DockerfileRunArguments>
    <!-- Set `docker build` arguments to add a custom tag -->
    <DockerfileBuildArguments>-t contoso/front-end:v2.0</DockerfileBuildArguments>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.10.6" />
  </ItemGroup>

</Project>

Poznámka:

Kontext Dockeru, který můžete nastavit poskytnutím hodnoty DockerfileContext, se obvykle liší v sadě Visual Studio pro projekty, které cílí na .NET Core (včetně .NET 5 a novějších), od toho, co docker build se používá při jeho spuštění z příkazového řádku. Odchod od chování docker build je nezbytný k zajištění, aby bylo možné zahrnout artefakty sestavení na úrovni řešení.

Při volání docker buildvždy zadáte kontext sestavení a volitelně můžete zadat cestu k souboru Dockerfile. Výchozí hodnota je, že soubor Dockerfile je v kořenovém adresáři kontextu, ale pomocí příznaku -f můžete zadat alternativní umístění. Můžete například sestavit z docker build -f Dockerfile .. adresáře projektu nebo docker build -f ProjectName/Dockerfile . z adresáře řešení.

Další kroky

Obecné informace o vlastnostech nástroje MSBuild naleznete v tématu Vlastnosti nástroje MSBuild.

Viz také

Vlastnosti sestavení Docker Compose

Nastavení spuštění nástroje kontejneru

Rezervované a dobře známé vlastnosti nástroje MSBuild