Vlastnosti sestavení Docker Compose
Kromě vlastností, které řídí jednotlivé projekty Dockeru popsané ve vlastnostech 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 v .dcproj
souboru projektu můžete nastavit DockerLaunchAction
následujícím způsobem.
<PropertyGroup>
<DockerLaunchAction>LaunchBrowser</DockerLaunchAction>
</PropertyGroup>
Nastavení vlastnosti můžete přidat do existujícího PropertyGroup
elementu nebo pokud neexistuje, vytvořte nový PropertyGroup
prvek.
Vlastnosti nástroje MSBuild pro Docker Compose
V následující tabulce jsou uvedeny vlastnosti NÁSTROJE MSBuild dostupné pro projekty Docker Compose.
Název vlastnosti | Umístění | Popis | Default value |
---|---|---|---|
AdditionalComposeFilePaths | dcproj | Určuje další compose files in a středník-delimited list to sent out to docker-compose.exe for all commands. Jsou povoleny relativní cesty ze souboru projektu Docker Compose (dcproj). | - |
DockerComposeBaseFilePath | dcproj | Určuje první část názvů souborů Docker Compose bez přípony .yml . Příklad: 1. DockerComposeBaseFilePath = null/undefined: použijte základní cestu docker-compose k souboru a 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ýš. |
docker-compose |
DockerComposeBuildArguments | dcproj | Určuje další parametry, které se mají předat příkazu docker-compose build . Například --parallel --pull . |
|
DockerComposeDownArguments | dcproj | Určuje další parametry, které se mají předat příkazu docker-compose down . Například --timeout 500 . |
- |
DockerComposeEnvFilePath | dcproj | 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. |
Prázdné |
DockerComposeProjectName | dcproj | Pokud je zadáno, přepíše název projektu pro projekt Docker Compose. | "dockercompose" + automaticky vygenerovaná hodnota hash |
DockerComposeProjectPath | csproj nebo vbproj | Relativní cesta 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. | - |
DockerComposeProjectsToIgnore | dcproj | 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 | dcproj | Určuje další parametry, které se mají předat příkazu docker-compose up . Například --timeout 500 . |
- |
DockerDevelopmentMode | dcproj | Určuje, jestli je projekt uživatele integrovaný v kontejneru. Povolené hodnoty ovládacího prvku 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. | Rychlé |
DockerLaunchAction | dcproj | 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. | Nic |
DockerLaunchBrowser | dcproj | Určuje, jestli se má prohlížeč spustit. Ignorováno, pokud je zadána Akce DockerLaunchAction. | False |
DockerServiceName | dcproj | Pokud jsou zadány DockerLaunchAction nebo DockerLaunchBrowser, pak DockerServiceName určuje, na kterou službu odkazovanou v docker-compose souboru se spustí. |
- |
DockerServiceUrl | dcproj | 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 | dcproj | Cílový operační systém použitý při vytváření image Dockeru. | - |
Příklad
Pokud změníte umístění docker-compose
souborů tak, že nastavíte DockerComposeBaseFilePath
relativní cestu, musíte se také ujistit, že je kontext sestavení změněn tak, aby odkaz na složku řešení. Pokud je například soubor docker-compose
složkou s názvem DockerComposeFiles, měl by soubor Docker Compose nastavit kontext sestavení na "." nebo ".. /..", v závislosti na tom, kde je relativní 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. Visual Studio navíc generuje přepsání souborů docker-compose.vs.debug.g.yml (pro rychlý režim) a docker-compose.vs.release.g.yml (pro běžné režimy) 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 rychlý režim) nebo docker-compose.vs.release.yml (pro běžný režim) do stejného adresáře jako soubor docker-compose.yml . Klikněte pravým tlačítkem na projekt Docker Compose a vyberte Otevřít složku v Průzkumník souborů a pak pomocí příkazu Přidat>existující položku přidejte soubor do projektu Docker Compose.
Tip
Pokud chcete zjistit výchozí hodnoty libovolného nastavení sady Visual Studio, vyhledejte v zprostředkujícím výstupním adresáři (například obj/Docker) 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.yml můž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.
Label name | 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). |
Label name | 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í příkazu Start bez ladění (Ctrl+F5) v projektu Azure Functions, který běží v izolovaném procesu. F5 i Ctrl+F5 obvykle používají 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í příkazu 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. |
Přizpůsobení procesu sestavení Dockeru
Můžete deklarovat, která fáze se má sestavit v souboru Dockerfile pomocí target
nastavení ve build
vlastnosti. 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í entrypoint
nastavení a nastavit ho jako závislý na objektu DockerDevelopmentMode
. Pokud například potřebujete nastavit certifikát pouze v rychlém režimu spuštěním update-ca-certificates
, ale ne v normálním režimu, můžete do docker-compose.vs.debug.yml přidat následující kód:
services:
webapplication1:
entrypoint: "sh -c 'update-ca-certificates && tail -f /dev/null'"
labels:
...
Další informace najdete v tématu Vstupní bod kontejneru.
Další kroky
Obecné informace o vlastnostech nástroje MSBuild 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