Skip to content

[Plugin] Docker Compose: manage compose CLI settings #467

Description

@DotDev262

Plugin: Docker Compose Config Provider

Manage Docker Compose CLI configuration settings stored in ~/.docker/config.json under the compose key (Docker Compose v2).

Config File Location

Platform Path
Linux / macOS ~/.docker/config.json
Windows %USERPROFILE%\.docker\config.json

Settings live under a compose key in the Docker config JSON. The existing docker plugin manages Docker Desktop settings (wslEngine, kubernetes, etc.) — this plugin focuses specifically on Docker Compose v2 CLI configuration.

Settings

Common settings that can be managed:

  • experimental — Enable experimental Compose features (bool)
  • projectName — Default project name template (string)
  • version — Docker Compose schema version (string)
  • profiles — Default profiles to enable (list of strings)
  • dependencies — Dependency resolution behavior
  • env_file — Default env file path
  • attach — Default attach configuration

Implementation Requirements

  • config_provider type plugin
  • JSON config format, deep-merge the compose key into ~/.docker/config.json
  • Must read existing file, merge compose settings, write back atomically
  • Full protocol compliance (requestId, check_installed bare bool, settings from args, dryRun from args, no success/data fields)
  • Atomic writes via tempfile.mkstemp + os.replace
  • Empty stdin returns JSON error
  • POSIX trailing newlines
  • Test file with sys.path.append (not sys.path.insert(0))

Acceptance Criteria

  • Plugin created under plugins/docker-compose/
  • plugin.yaml, src/plugin.py, test/test_docker_compose.py included
  • All tests pass
  • Protocol compliant
  • Works on both Windows and Unix paths

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions