Sdílet prostřednictvím


Vlastnosti sestavení Docker Compose

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

rezervovaných a známých vlastností nástroje MSBuild