Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Kromě vlastností, které řídí jednotlivé projekty Dockeru, popsané v Vlastnosti sestavení Nástroje kontejneru, můžete také přizpůsobit, jak Visual Studio sestaví projekty Docker Compose nastavením vlastností Docker Compose, které NÁSTROJ MSBuild používá k sestavení vašeho řešení. Můžete také řídit, jak ladicí program sady Visual Studio spouští aplikace Docker Compose nastavením popisků souborů v konfiguračních souborech Docker Compose.
Jak nastavit vlastnosti nástroje MSBuild
Chcete-li nastavit hodnotu vlastnosti, upravte soubor projektu. U vlastností Docker Compose je tento soubor projektu s příponou .dcproj, pokud není v tabulce v další části uvedeno jinak. Předpokládejme například, že chcete zadat, aby se při spuštění ladění spustil prohlížeč. Vlastnost DockerLaunchAction můžete nastavit v souboru projektu .dcproj následujícím způsobem.
<PropertyGroup>
<DockerLaunchAction>LaunchBrowser</DockerLaunchAction>
</PropertyGroup>
Nastavení vlastnosti můžete přidat do existujícího prvku PropertyGroup nebo pokud neexistuje, vytvořte nový prvek PropertyGroup.
Docker Compose MSBuild – vlastnosti
Následující tabulka ukazuje vlastnosti NÁSTROJE MSBuild dostupné pro projekty Docker Compose (.dcproj soubory).
| Název vlastnosti | Popis |
|---|---|
| AdditionalComposeFilePaths | Určuje další soubory pro vytváření v seznamu odděleným středníkem, který se má odeslat do docker-compose.exe pro všechny příkazy. Jsou povoleny relativní cesty ze souboru projektu Docker Compose (dcproj). |
| DependencyAwareStart | Umožňuje jiný způsob spuštění aplikace, který podporuje vlastnosti Docker Compose depends_on a healthcheck, které řídí pořadí spuštění služby a kontroly stavu.Vyžaduje Visual Studio 17.13 nebo novější. Výchozí hodnota: False |
| DockerComposeBaseFilePath | Určuje první část názvů souborů Docker Compose bez přípony .yml. Například: 1. DockerComposeBaseFilePath = null/undefined: použijte základní cestu k souboru docker-composea soubory budou pojmenovány docker-compose.yml a docker-compose.override.yml.2. DockerComposeBaseFilePath = mydockercompose: soubory budou pojmenovány mydockercompose.yml a mydockercompose.override.yml. 3. DockerComposeBaseFilePath = .. \mydockercompose: soubory budou o jednu úroveň výš. Výchozí hodnota: docker-compose |
| DockerComposeBuildArguments | Určuje další parametry, které se mají předat docker-compose build příkazu. Například --parallel --pull. |
| DockerComposeDownArguments | Určuje další parametry, které se mají předat docker-compose down příkazu. Například --timeout 500. |
| DockerComposeEnvFilePath | Relativní cesta k souboru .env, který se předává docker compose příkazům prostřednictvím --env-file. Viz Použití atributu env_file.Výchozí hodnota: Prázdné |
| DockerComposeProjectName | Pokud je zadáno, přepíše název projektu pro projekt Docker Compose. Výchozí hodnota: dockercompose + automaticky vygenerovaná hodnota hash |
| DockerComposeProjectsToIgnore | Určuje projekty, které mají být během ladění ignorovány nástroji Docker Compose. Tuto vlastnost lze použít pro libovolný projekt. Cesty k souborům je možné zadat jedním ze dvou způsobů: 1. Vzhledem k dcproj. Například <DockerComposeProjectsToIgnore> path\to\AngularProject1.csproj </DockerComposeProjectsToIgnore>. 2. Absolutní cesty. Poznámka: Cesty by měly být odděleny znakem oddělovače ;. |
| DockerComposeUpArguments | Určuje další parametry, které se mají předat docker-compose up příkazu. Například --timeout 500. |
| DockerDevelopmentMode | Určuje, jestli je projekt uživatele integrovaný v kontejneru. Povolené hodnoty ovládacích prvků Fast nebo Regular, které fáze jsou vytvořeny v souboru Dockerfile. Konfigurace ladění je ve výchozím nastavení rychlý a normální režim jinak. Výchozí hodnota: Fast |
| DockerLaunchAction | Určuje akci spuštění, která se má provést s klávesou F5 nebo Ctrl+F5. Povolené hodnoty jsou None, LaunchBrowser a LaunchWCFTestClient. Výchozí hodnota: None |
| DockerLaunchBrowser | Určuje, jestli se má prohlížeč spustit. Ignorováno, pokud je zadána Akce DockerLaunchAction. Výchozí hodnota: False |
| DockerServiceName | Pokud jsou zadány DockerLaunchAction nebo DockerLaunchBrowser, pak DockerServiceName určuje, na kterou službu odkazuje v souboru docker-compose se spustí. |
| DockerServiceUrl | Adresa URL, která se má použít při spuštění prohlížeče. Platné náhradní tokeny jsou {ServiceIPAddress}, {ServicePort} a {Scheme}. Příklad: {Scheme}://{ServiceIPAddress}:{ServicePort} |
| DockerTargetOS | Cílový operační systém použitý při vytváření image Dockeru. |
Kromě toho vlastnost DockerComposeProjectPath v souboru projektu .csproj nebo .vbproj určuje relativní cestu k souboru projektu Docker Compose (.dcproj). Tuto vlastnost nastavte při publikování projektu služby a vyhledejte přidružená nastavení sestavení image uložená v souboru docker-compose.yml.
Příklad
Pokud změníte umístění docker-compose souborů nastavením DockerComposeBaseFilePath na relativní cestu, musíte také zajistit, aby se kontext sestavení změnil tak, aby odkaz na složku řešení. Pokud je například soubor docker-compose složka s názvem DockerComposeFiles, měl by soubor Docker Compose nastavit kontext sestavení na "." nebo ".. /..", v závislosti na tom, kde je relativní vzhledem ke složce řešení.
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" Sdk="Microsoft.Docker.Sdk">
<PropertyGroup Label="Globals">
<ProjectVersion>2.1</ProjectVersion>
<DockerTargetOS>Windows</DockerTargetOS>
<ProjectGuid>154022c1-8014-4e9d-bd78-6ff46670ffa4</ProjectGuid>
<DockerLaunchAction>LaunchBrowser</DockerLaunchAction>
<DockerServiceUrl>{Scheme}://{ServiceIPAddress}{ServicePort}</DockerServiceUrl>
<DockerServiceName>webapplication1</DockerServiceName>
<DockerComposeBaseFilePath>DockerComposeFiles\mydockercompose</DockerComposeBaseFilePath>
<AdditionalComposeFilePaths>AdditionalComposeFiles\myadditionalcompose.yml</AdditionalComposeFilePaths>
</PropertyGroup>
<ItemGroup>
<None Include="DockerComposeFiles\mydockercompose.override.yml">
<DependentUpon>DockerComposeFiles\mydockercompose.yml</DependentUpon>
</None>
<None Include="DockerComposeFiles\mydockercompose.yml" />
<None Include=".dockerignore" />
</ItemGroup>
</Project>
Soubor mydockercompose.yml by měl vypadat takto, s kontextem sestavení nastaveným na relativní cestu ke složce řešení (v tomto případě ..).
version: '3.4'
services:
webapplication1:
image: ${DOCKER_REGISTRY-}webapplication1
build:
context: ..
dockerfile: WebApplication1\Dockerfile
Poznámka
DockerComposeBuildArguments, DockerComposeDownArguments a DockerComposeUpArguments jsou v sadě Visual Studio 2019 verze 16.3 nové.
Přepsání konfigurace Docker Compose sady Visual Studio
Obvykle se docker-compose.override.yml používá k přepsání určitých nastavení v docker-compose.yml. Kromě toho Sada Visual Studio generuje soubory přepsání docker-compose.vs.debug.g.yml (pro režim Fast) a docker-compose.vs.release.g.yml (pro soubory normálního režimu) s nastavením, která jsou specifická pro spuštění aplikace v sadě Visual Studio. Tato nastavení sady Visual Studio můžete přepsat umístěním souboru s názvem docker-compose.vs.debug.yml (pro režim Fast) nebo docker-compose.vs.release.yml (pro normální režim) do stejného adresáře jako soubor docker-compose.yml. Pravým tlačítkem myši klikněte na projekt Docker Compose a vyberte Otevřít složku v Průzkumníku souborů a pak pomocí Přidat>Existující položka přidat soubor do projektu Docker Compose.
Spropitné
Pokud chcete zjistit výchozí hodnoty libovolného nastavení sady Visual Studio, vyhledejte zprostředkující výstupní adresář (například obj/Docker) pro docker-compose.vs.debug.g.yml nebo docker-compose.vs.release.g.yml. Tyto soubory jsou generovány sadou Visual Studio a neměly by být změněny.
Popisky souborů Docker Compose
V docker-compose.vs.debug.yml nebo docker-compose.vs.release.ymlmůžete definovat popisky specifické pro přepsání následujícím způsobem:
services:
webapplication1:
labels:
com.microsoft.visualstudio.debuggee.workingdirectory: "C:\\my_app_folder"
Použijte dvojité uvozovky kolem hodnot, jako v předchozím příkladu, a použijte zpětné lomítko jako řídicí znak pro zpětné lomítka v cestách.
| Název popisku | Popis |
|---|---|
| com.microsoft.visualstudio.debuggee.program | Program se spustil při spuštění ladění. U aplikací .NET Core je toto nastavení obvykle dotnet. |
| com.microsoft.visualstudio.debuggee.arguments | Argumenty předané programu při spuštění ladění. U aplikací .NET Core jsou tyto argumenty obvykle další cesty hledání pro balíčky NuGet následované cestou k výstupnímu sestavení projektu. |
| com.microsoft.visualstudio.debuggee.workingdirectory | Adresář použitý jako výchozí adresář při spuštění ladění. Toto nastavení je obvykle /app pro kontejnery Linuxu nebo C:\app pro kontejnery Windows. |
| com.microsoft.visualstudio.debuggee.killprogram | Tento příkaz slouží k zastavení programu ladění, který běží uvnitř kontejneru (v případě potřeby). |
| com.microsoft.visualstudio.debuggee.noattach.program | Program spuštěný při použití Start bez ladění (Ctrl+F5) v projektu Azure Functions, který běží v izolovaném procesu. Obvykle F5 i ctrl+F 5 používá stejný program, ale pokud některý typ projektu, jako je Azure Functions v izolovaném procesu, vyžaduje jiný program než F5, použije se. |
| com.microsoft.visualstudio.debuggee.noattach.arguments | Argumenty předané programu při použití Start bez ladění (Ctrl+F5) v projektu Azure Functions, který běží v izolovaném procesu. |
| com.microsoft.visual-studio.project-name | Název projektu, který pomáhá sadě Visual Studio najít projekt, pokud projekt není ve stejné složce jako soubor Dockerfile. |
| com.microsoft.visualstudio.launch-url.path-query | Cesta a dotaz používaný oknem kontejnerů při otevírání odkazů na kartě porty Vyžaduje Visual Studio 17.13 nebo novější. |
Přizpůsobení procesu sestavení Dockeru
Můžete deklarovat, která fáze se má sestavit v souboru Dockerfile pomocí nastavení target ve vlastnosti build. Toto přepsání lze použít pouze v docker-compose.vs.debug.yml nebo docker-compose.vs.release.yml
services:
webapplication1:
build:
target: customStage
labels:
...
Přizpůsobení procesu spuštění aplikace
Před spuštěním aplikace můžete spustit příkaz nebo vlastní skript pomocí nastavení entrypoint a nastavit ho jako závislý na DockerDevelopmentMode. Pokud například potřebujete nastavit certifikát pouze v režimu Fast spuštěním update-ca-certificates, ale ne v režimu Regular, můžete do přidat následující kód pouzedocker-compose.vs.debug.yml:
services:
webapplication1:
entrypoint: "sh -c 'update-ca-certificates && tail -f /dev/null'"
labels:
...
Další informace najdete v tématu vstupního bodu kontejneru
Další kroky
Informace o vlastnostech nástroje MSBuild obecně naleznete v tématu vlastnosti nástroje MSBuild.
Viz také
vlastnosti sestavení Nástroje kontejneru
nastavení spuštění Nástroje kontejneru
Správa spouštěcích profilů pro Docker Compose v sadě Visual Studio