Skip to content

Add configurable Docker container log limits#53

Merged
Dumbris merged 2 commits into
mainfrom
feature/docker-max-logs
Sep 7, 2025
Merged

Add configurable Docker container log limits#53
Dumbris merged 2 commits into
mainfrom
feature/docker-max-logs

Conversation

@Dumbris

@Dumbris Dumbris commented Sep 5, 2025

Copy link
Copy Markdown
Member

Summary

Implements configurable Docker container log limits to prevent excessive disk usage from container stdout/stderr logs in isolated MCP servers.

  • Adds LogDriver, LogMaxSize, LogMaxFiles configuration fields to both global and per-server isolation settings
  • Default behavior uses Docker system default (no log driver override)
  • When users explicitly configure json-file driver, applies log rotation limits (default: 100m max size, 3 max files)
  • Supports server-specific overrides for fine-grained control

Changes

  • Config: Add logging fields to DockerIsolationConfig and IsolationConfig
  • Docker args: Conditionally add --log-driver and --log-opt arguments based on configuration
  • Tests: Comprehensive test coverage for all configuration scenarios

Configuration Example

{
  "docker_isolation": {
    "log_driver": "json-file",
    "log_max_size": "50m",
    "log_max_files": "5"
  },
  "mcpServers": [{
    "name": "special-server", 
    "isolation": {
      "log_max_size": "25m",
      "log_max_files": "2"
    }
  }]
}

Test plan

  • Unit tests pass for all configuration scenarios
  • Default configuration uses Docker system defaults (no log args added)
  • Explicit json-file configuration applies log limits correctly
  • Server-specific overrides work as expected
  • Non-json-file drivers don't get log options (as required by Docker)
  • Build and linting passes

Implements Docker logging configuration to prevent excessive disk usage from container stdout/stderr logs:

- Add LogDriver, LogMaxSize, LogMaxFiles fields to DockerIsolationConfig and IsolationConfig
- BuildDockerArgs adds --log-driver and --log-opt arguments when json-file driver is configured
- Default behavior uses Docker system default (no log driver override)
- Users can explicitly set json-file driver with limits (100m max size, 3 max files by default)
- Supports both global and per-server configuration overrides
- Comprehensive test coverage for all configuration scenarios

Configuration example:
{
  "docker_isolation": {
    "log_driver": "json-file",
    "log_max_size": "50m",
    "log_max_files": "5"
  }
}
…plication

- Update test descriptions for clarity regarding log limits application without driver override.
- Ensure log options are always applied to prevent disk space issues, even with non-json-file drivers.
- Refactor BuildDockerArgs to consistently apply log size and file limits across configurations.

This improves the robustness of Docker logging behavior in isolation management.
@Dumbris
Dumbris merged commit 9deba8d into main Sep 7, 2025
33 checks passed
@Dumbris
Dumbris deleted the feature/docker-max-logs branch September 7, 2025 15:34
rannow pushed a commit to rannow/mcpproxy-go that referenced this pull request Sep 23, 2025
…cker-max-logs

Add configurable Docker container log limits
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.

1 participant