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, EnableSdkContainerDebugging
je 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é (Internetová informační 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>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<UserSecretsId>8c7ab9a5-d578-4c40-8b6d-54d174002229</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.20.1" />
</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 build
vž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