Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Förutom de egenskaper som styr enskilda Docker-projekt, som beskrivs i Container Tools-byggegenskaper, kan du också anpassa hur Visual Studio skapar dina Docker Compose-projekt genom att ange de Docker Compose-egenskaper som MSBuild använder för att skapa din lösning. Du kan också styra hur Visual Studio-felsökningsprogrammet kör dina Docker Compose-appar genom att ange filetiketter i Docker Compose-konfigurationsfiler.
Så här ställer du in MSBuild-egenskaperna
Om du vill ange värdet för en egenskap redigerar du projektfilen. För Docker Compose-egenskaper är den här projektfilen den med ett .dcproj-tillägg, om inget annat anges i tabellen i nästa avsnitt. Anta till exempel att du vill ange att webbläsaren ska startas när du börjar felsöka. Du kan ange egenskapen DockerLaunchAction i .dcproj-projektfilen på följande sätt.
<PropertyGroup>
<DockerLaunchAction>LaunchBrowser</DockerLaunchAction>
</PropertyGroup>
Du kan lägga till egenskapsinställningen i ett befintligt PropertyGroup-element eller, om det inte finns något, skapa ett nytt PropertyGroup element.
Egenskaper för Docker Compose MSBuild
I följande tabell visas de MSBuild-egenskaper som är tillgängliga för Docker Compose-projekt (.dcproj-filer).
| Egenskapsnamn | Beskrivning |
|---|---|
| AdditionalComposeFilePaths | Anger ytterligare skrivfiler i en semikolonavgränsad lista som ska skickas ut till docker-compose.exe för alla kommandon. Relativa sökvägar från Docker Compose-projektfilen (dcproj) tillåts. |
| DependencyAwareStart | Aktiverar ett annat sätt att starta appen som stöder Docker Compose-egenskaperna depends_on och healthcheck, som styr tjänstens startordning och hälsokontroller.Kräver Visual Studio 17.13 eller senare. Standardvärde: False |
| DockerComposeBaseFilePath | Anger den första delen av filnamnen för Docker Compose-filerna, utan .yml-tillägget. Till exempel: 1. DockerComposeBaseFilePath = null/undefined: använd basfilsökvägen docker-composeoch filerna får namnet docker-compose.yml och docker-compose.override.yml.2. DockerComposeBaseFilePath = mydockercompose: filer får namnet mydockercompose.yml och mydockercompose.override.yml. 3. DockerComposeBaseFilePath = .. \mydockercompose: filerna kommer att vara upp en nivå. Standardvärde: docker-compose |
| DockerComposeBuildArguments | Anger de extra parametrar som ska skickas till kommandot docker-compose build. Till exempel --parallel --pull. |
| DockerComposeDownArguments | Anger de extra parametrar som ska skickas till kommandot docker-compose down. Till exempel --timeout 500. |
| DockerComposeEnvFilePath | Den relativa sökvägen till en .env-fil som skickas till docker compose-kommandon via --env-file. Se Använd attributet env_file.Standardvärde: Tom |
| DockerComposeProjectName | Om det anges åsidosätter du projektnamnet för ett Docker Compose-projekt. Standardvärde: "dockercompose" + automatiskt genererad hash |
| DockerComposeProjectsToIgnore | Anger projekt som ska ignoreras av Docker Compose-verktyg under felsökningen. Den här egenskapen kan användas för valfritt projekt. Filsökvägar kan anges på något av två sätt: 1. I förhållande till dcproj. Till exempel <DockerComposeProjectsToIgnore> path\to\AngularProject1.csproj </DockerComposeProjectsToIgnore>. 2. Absoluta sökvägar. Obs: Sökvägarna ska avgränsas med avgränsartecknet ;. |
| DockerComposeUpArguments | Anger de extra parametrar som ska skickas till kommandot docker-compose up. Till exempel --timeout 500. |
| DockerDevelopmentMode | Styr om användarprojektet är inbyggt i containern. De tillåtna värdena för Fast eller Regular styr vilka steg som skapas i en Dockerfile. Felsökningskonfigurationen är snabbt läge som standard och normalt läge annars. Standardvärde: Snabb |
| DockerLaunchAction | Anger den startåtgärd som ska utföras på F5 eller Ctrl+F5. Tillåtna värden är None, LaunchBrowser och LaunchWCFTestClient. Standardvärde: Ingen |
| DockerLaunchBrowser | Anger om webbläsaren ska startas. Ignorerade om DockerLaunchAction har angetts. Standardvärde: False |
| DockerServiceName | Om DockerLaunchAction eller DockerLaunchBrowser anges anger DockerServiceName vilken tjänst som refereras i docker-compose filen startas. |
| DockerServiceUrl | Url:en som ska användas när webbläsaren startas. Giltiga ersättningstoken är {ServiceIPAddress}, {ServicePort} och {Scheme}. Exempel: {Scheme}://{ServiceIPAddress}:{ServicePort} |
| DockerTargetOS | Måloperativsystemet som används när du skapar Docker-avbildningen. |
Dessutom anger egenskapen DockerComposeProjectPath i en .csproj- eller .vbproj-projektfil den relativa sökvägen till Docker Compose-projektet (.dcproj) filen. Ange den här egenskapen när du publicerar tjänstprojektet för att hitta de associerade avbildningsversionsinställningarna som lagras i filen docker-compose.yml.
Exempel
Om du ändrar platsen för docker-compose filer genom att ange DockerComposeBaseFilePath till en relativ sökväg måste du också se till att byggkontexten ändras så att den refererar till lösningsmappen. Om din docker-compose-fil till exempel är en mapp med namnet DockerComposeFilesska Docker Compose-filen ange byggkontexten till ".." eller ".. /..", beroende på var den är relativ till lösningsmappen.
<?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>
Den mydockercompose.yml filen bör se ut så här, med byggkontexten inställd på den relativa sökvägen för lösningsmappen (i det här fallet ..).
version: '3.4'
services:
webapplication1:
image: ${DOCKER_REGISTRY-}webapplication1
build:
context: ..
dockerfile: WebApplication1\Dockerfile
Not
DockerComposeBuildArguments, DockerComposeDownArguments och DockerComposeUpArguments är nya i Visual Studio 2019 version 16.3.
Åsidosätta Visual Studios Docker Compose-konfiguration
Vanligtvis används docker-compose.override.yml för att åsidosätta vissa inställningar i docker-compose.yml. Visual Studio genererar dessutom åsidosättningsfiler docker-compose.vs.debug.g.yml (för snabbt-läge) och docker-compose.vs.release.g.yml filer (för regelbundet läge) med inställningar som är specifika för att köra programmet i Visual Studio. Du kan åsidosätta dessa Visual Studio-inställningar genom att placera en fil med namnet docker-compose.vs.debug.yml (för läget Snabb) eller docker-compose.vs.release.yml (för normal läge) i samma katalog som din docker-compose.yml fil. Högerklicka på Docker Compose-projektet och välj Öppna mapp i Utforskaren och använd sedan Lägg till>befintligt objekt för att lägga till filen i Docker Compose-projektet.
Dricks
Om du vill ta reda på standardvärdena för någon av Visual Studio-inställningarna tittar du i katalogen för mellanliggande utdata (till exempel obj/Docker) för docker-compose.vs.debug.g.yml eller docker-compose.vs.release.g.yml. Dessa filer genereras av Visual Studio och bör inte ändras.
Docker Compose-filetiketter
I docker-compose.vs.debug.yml eller docker-compose.vs.release.ymlkan du definiera åsidosättningsspecifika etiketter på följande sätt:
services:
webapplication1:
labels:
com.microsoft.visualstudio.debuggee.workingdirectory: "C:\\my_app_folder"
Använd dubbla citattecken runt värdena, som i föregående exempel, och använd omvänt snedstreck som ett escape-tecken för omvänt snedstreck i sökvägar.
| Etikettnamn | Beskrivning |
|---|---|
| com.microsoft.visualstudio.debuggee.program | Programmet startades när felsökningen startades. För .NET Core-appar är den här inställningen vanligtvis dotnet-. |
| com.microsoft.visualstudio.debuggee.arguments | Argumenten som skickades till programmet när felsökningen startades. För .NET Core-appar är dessa argument vanligtvis ytterligare sökvägar för NuGet-paket följt av sökvägen till projektets utdatasammansättning. |
| com.microsoft.visualstudio.debuggee.workingdirectory | Katalogen som används som startkatalog när felsökning startas. Den här inställningen är vanligtvis /app för Linux-containrar eller C:\app för Windows-containrar. |
| com.microsoft.visualstudio.debuggee.killprogram | Det här kommandot används för att stoppa felsökningsprogrammet som körs i containern (vid behov). |
| Etikettnamn | Beskrivning |
|---|---|
| com.microsoft.visualstudio.debuggee.program | Programmet startades när felsökningen startades. För .NET Core-appar är den här inställningen vanligtvis dotnet-. |
| com.microsoft.visualstudio.debuggee.arguments | Argumenten som skickades till programmet när felsökningen startades. För .NET Core-appar är dessa argument vanligtvis ytterligare sökvägar för NuGet-paket följt av sökvägen till projektets utdatasammansättning. |
| com.microsoft.visualstudio.debuggee.workingdirectory | Katalogen som används som startkatalog när felsökning startas. Den här inställningen är vanligtvis /app för Linux-containrar eller C:\app för Windows-containrar. |
| com.microsoft.visualstudio.debuggee.killprogram | Det här kommandot används för att stoppa felsökningsprogrammet som körs i containern (vid behov). |
| com.microsoft.visualstudio.debuggee.noattach.program | Programmet startades när du använder Start utan att felsöka (Ctrl+F5) i ett Azure Functions-projekt som körs i en isolerad process. Normalt använder både F5 och Ctrl+F5 samma program, men om någon projekttyp som Azure Functions i en isolerad process kräver ett annat program än F5, används detta. |
| com.microsoft.visualstudio.debuggee.noattach.arguments | Argumenten som skickas till programmet när du använder Starta utan att felsöka (Ctrl+F5) i ett Azure Functions-projekt som körs i en isolerad process. |
| com.microsoft.visual-studio.project-name | Namnet på projektet, som hjälper Visual Studio att hitta projektet om projektet inte finns i samma mapp som Dockerfile. |
Anpassa Docker-byggprocessen
Du kan deklarera vilken fas som ska skapas i Dockerfile med hjälp av inställningen target i egenskapen build. Den här åsidosättningen kan endast användas i docker-compose.vs.debug.yml eller docker-compose.vs.release.yml
services:
webapplication1:
build:
target: customStage
labels:
...
Anpassa appstartprocessen
Du kan köra ett kommando eller ett anpassat skript innan du startar appen med hjälp av inställningen entrypoint och göra den beroende av DockerDevelopmentMode. Om du till exempel bara behöver konfigurera ett certifikat i läge för snabb genom att köra update-ca-certificates, men inte i läge för normal, kan du lägga till följande kod i endastdocker-compose.vs.debug.yml:
services:
webapplication1:
entrypoint: "sh -c 'update-ca-certificates && tail -f /dev/null'"
labels:
...
Mer information finns i containerinmatningspunkt
Nästa steg
Mer information om MSBuild-egenskaper finns i MSBuild Properties.
Se även
Container Tools-byggegenskaper
Startinställningar för containerverktyg