From 7528ba1c687acc4ad24fccdce790b9aff399da4c Mon Sep 17 00:00:00 2001 From: gjzhou <92616697+PotatoZhou@users.noreply.github.com> Date: Thu, 20 Feb 2025 16:52:14 -0500 Subject: [PATCH] Add profile support to Docker Compose down task definition --- package.json | 9 ++++++++- package.nls.json | 1 + src/commands/compose/compose.ts | 2 +- src/commands/compose/getComposeSubsetList.ts | 2 -- src/tasks/DockerComposeTaskDefinitionBase.ts | 1 + src/tasks/DockerComposeTaskProvider.ts | 1 + 6 files changed, 12 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index dce34a13af..00f421fa72 100644 --- a/package.json +++ b/package.json @@ -1411,6 +1411,13 @@ "description": "%vscode-docker.tasks.docker-compose.dockerCompose.down.removeVolumes%", "default": false }, + "profiles": { + "type": "array", + "description": "%vscode-docker.tasks.docker-compose.dockerCompose.down.profiles%", + "items": { + "type": "string" + } + }, "customOptions": { "type": "string", "description": "%vscode-docker.tasks.docker-compose.dockerCompose.down.customOptions%" @@ -1821,7 +1828,7 @@ "default": [ { "label": "Compose Down", - "template": "${composeCommand} ${profileList} ${configurationFile} down" + "template": "${composeCommand} ${configurationFile} down" } ], "description": "%vscode-docker.config.template.composeDown.description%" diff --git a/package.nls.json b/package.nls.json index c5e6f86adb..049d701196 100644 --- a/package.nls.json +++ b/package.nls.json @@ -118,6 +118,7 @@ "vscode-docker.tasks.docker-compose.dockerCompose.down.description": "Options for the `docker-compose down` command.", "vscode-docker.tasks.docker-compose.dockerCompose.down.removeImages": "Images to remove.", "vscode-docker.tasks.docker-compose.dockerCompose.down.removeVolumes": "Whether or not to remove named and anonymous volumes.", + "vscode-docker.tasks.docker-compose.dockerCompose.down.profiles": "A subset of profiles to stop and remove.", "vscode-docker.tasks.docker-compose.dockerCompose.down.customOptions": "Any other options to add to the `docker-compose down` command. Cannot be combined with `up`.", "vscode-docker.tasks.docker-compose.dockerCompose.envFiles.description": "(DEPRECATED) Use `envFile` instead.", "vscode-docker.tasks.docker-compose.dockerCompose.envFile.description": "File of environment variables read in and applied to the Docker containers.", diff --git a/src/commands/compose/compose.ts b/src/commands/compose/compose.ts index b0b8b4dff7..b85ce40047 100644 --- a/src/commands/compose/compose.ts +++ b/src/commands/compose/compose.ts @@ -66,7 +66,7 @@ async function compose(context: IActionContext, commands: ('up' | 'down' | 'upSu if (!terminalCommand.args?.length) { // Add the service list if needed terminalCommand.command = await addServicesOrProfilesIfNeeded(context, folder, terminalCommand.command, preselectedServices, preselectedProfiles); - } else if (command === 'upSubset' || command === 'down') { + } else if (command === 'upSubset') { // If there are arguments, it means we're using a default command (based on the logic in selectCommandTemplate.ts) // So, we only want to add profile/service list for the upSubset command terminalCommand = await addDefaultCommandServicesOrProfilesIfNeeded(context, folder, terminalCommand, preselectedServices, preselectedProfiles); diff --git a/src/commands/compose/getComposeSubsetList.ts b/src/commands/compose/getComposeSubsetList.ts index 781da08bdb..3da7eb94ce 100644 --- a/src/commands/compose/getComposeSubsetList.ts +++ b/src/commands/compose/getComposeSubsetList.ts @@ -30,8 +30,6 @@ export async function getDefaultCommandComposeProfilesOrServices(context: IActio useProfiles = true; } else if (preselectedServices?.length) { useProfiles = false; - } else if (composeCommand.args.includes('down')) { - useProfiles = true; } else if (profiles?.length) { const profilesOrServices: IAzureQuickPickItem[] = [ { diff --git a/src/tasks/DockerComposeTaskDefinitionBase.ts b/src/tasks/DockerComposeTaskDefinitionBase.ts index 904763fb7e..7a85cbc037 100644 --- a/src/tasks/DockerComposeTaskDefinitionBase.ts +++ b/src/tasks/DockerComposeTaskDefinitionBase.ts @@ -23,6 +23,7 @@ export interface DockerComposeDownOptions { removeImages?: 'all' | 'local'; removeVolumes?: boolean; customOptions?: string; + profiles?: string[]; }; } diff --git a/src/tasks/DockerComposeTaskProvider.ts b/src/tasks/DockerComposeTaskProvider.ts index 53345c39e2..08685d0048 100644 --- a/src/tasks/DockerComposeTaskProvider.ts +++ b/src/tasks/DockerComposeTaskProvider.ts @@ -56,6 +56,7 @@ export class DockerComposeTaskProvider extends DockerTaskProvider { files: options.files, environmentFile: options.envFile, projectName: options.projectName, + profiles: options.down.profiles, removeImages: options.down.removeImages, removeVolumes: options.down.removeVolumes, customOptions: options.down.customOptions,