Skip to content

Add Compose Pull support for updating project images - #592

Open
Miłosz Kordziński (milekv) wants to merge 3 commits into
microsoft:mainfrom
milekv:fix/414-compose-pull
Open

Add Compose Pull support for updating project images#592
Miłosz Kordziński (milekv) wants to merge 3 commits into
microsoft:mainfrom
milekv:fix/414-compose-pull

Conversation

@milekv

@milekv Miłosz Kordziński (milekv) commented Aug 24, 2026

Copy link
Copy Markdown

Summary

Adds a Compose Pull command so developers can update all images referenced by a Compose project without leaving VS Code.

The command is available from:

  • the Command Palette
  • compose file editor and Explorer context menus
  • running Compose groups in the Containers view

The orchestrator client exposes pull as an optional capability, keeping existing third-party clients compatible while sharing argument construction across Docker, Podman, nerdctl, and Finch. Unsupported clients receive a localized error.

Fixes #414.

Validation

  • pnpm build
  • pnpm lint
  • pnpm test
  • 243 vscode-container-client unit tests passed
  • 158 extension tests passed in the VS Code test host

Copilot AI lite review requested due to automatic review settings August 24, 2026 07:23
@milekv
Miłosz Kordziński (milekv) requested a review from a team as a code owner August 24, 2026 07:23

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds Compose Pull support for updating project images across supported orchestrators from VS Code.

Changes:

  • Adds typed, shared Compose pull command construction.
  • Registers workspace, editor, Explorer, and Containers view commands.
  • Adds localized contributions and unit tests.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.

Show a summary per file
File Summary
packages/vscode-container-client/src/test/clients/NerdctlComposeClient/NerdctlComposeClient.test.ts Tests Nerdctl Compose pull syntax.
packages/vscode-container-client/src/test/clients/DockerComposeClient/DockerComposeClient.test.ts Tests service-targeted pull arguments.
packages/vscode-container-client/src/contracts/ContainerOrchestratorClient.ts Defines the pull API; required contract changes may break existing third-party clients and older runtime implementations. Critical, 3 votes.
packages/vscode-container-client/src/clients/DockerComposeClientBase/DockerComposeClientBase.ts Builds shared Compose pull arguments.
extensions/vscode-containers/src/commands/registerCommands.ts Registers the new commands.
extensions/vscode-containers/src/commands/containers/composeGroup.ts Adds pull support for running Compose groups.
extensions/vscode-containers/src/commands/compose/compose.ts Implements workspace Compose Pull execution.
extensions/vscode-containers/package.nls.json Adds localized command labels.
extensions/vscode-containers/package.json Adds command and menu contributions.
Suppressed comments (1)

packages/vscode-container-client/src/contracts/ContainerOrchestratorClient.ts:147

  • The services option is not consumed by either new extension caller (composePull and composeGroupPull both pass only common options); it exists only in the unit test and is described as being for future callers. This unnecessarily commits the public package contract to an option before a caller needs it. Please defer the option until service selection is implemented, or add the concrete caller in this change.
    services?: Array<string>;

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@milekv

Copy link
Copy Markdown
Author

@microsoft-github-policy-service agree

Comment on lines +82 to +85
{
"command": "vscode-containers.containers.composeGroup.pull",
"when": "config.containers.containers.groupBy == 'Compose Project Name'"
},

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Compose groups represent a compose project that is already running. I am not sure that having a pull command for that is as useful as having the other one, which is for compose files. Matt Hernandez (@fiveisprime) any thoughts?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add “Compose Pull / Update All Images” command for Docker Compose projects

3 participants