Skip to content

Add parallel isolated Docker database environments#70

Draft
AGiorgetti wants to merge 21 commits into
developfrom
agent/parallel-docker-environments
Draft

Add parallel isolated Docker database environments#70
AGiorgetti wants to merge 21 commits into
developfrom
agent/parallel-docker-environments

Conversation

@AGiorgetti

Copy link
Copy Markdown
Member

What changed

  • replaces the platform-specific Docker setup with one Linux-container Compose stack for SQL Server, MySQL, PostgreSQL, and Oracle
  • adds fixed debug, test, and ci port overrides plus Docker-assigned dynamic ports
  • adds equivalent Bash and PowerShell start/stop scripts with health checks, scoped cleanup, atomic .env generation, and worktree-derived names
  • keeps Compose responsible for container, network, and volume naming; removes fixed container_name values and the Windows-container compose file
  • adds selected .env.dynamic, .env.debug, .env.test, or .env.ci loading in the shared test connection factory while preserving existing complete connection-string environment variables
  • updates CI to use the reserved ci environment with cleanup under always()
  • updates .gitignore, AGENTS.md, README, and Docker documentation

Environment model

  • Compose project: neventstore-<normalized-environment-name>
  • fixed ports:
    • debug: SQL Server 50001, MySQL 50003, PostgreSQL 50004, Oracle 50005
    • test: SQL Server 51001, MySQL 51003, PostgreSQL 51004, Oracle 51005
    • ci: SQL Server 52001, MySQL 52003, PostgreSQL 52004, Oracle 52005
  • dynamic environments bind each database to 127.0.0.1 with Docker-assigned ports

Validation

Repository structure, existing test connection handling, Compose configuration, scripts, documentation, and workflow changes were inspected through the GitHub API. Runtime Docker and dotnet test validation could not be executed in this environment because the local execution sandbox could not resolve GitHub to create a checkout and no repository working tree was available for running Docker or the SDK. CI is expected to provide the first full runtime validation.

Review notes

The implementation deliberately avoids a custom CLI, port allocator, environment registry, per-database lifecycle scripts, fixed container names, and global Docker cleanup commands.

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