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-composek 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

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