Skip to content

chore: Bump Docker.DotNet from 4.2.0 to 4.3.2#1712

Merged
HofmeisterAn merged 4 commits into
developfrom
feature/bump-docker-dotnet
Jun 24, 2026
Merged

chore: Bump Docker.DotNet from 4.2.0 to 4.3.2#1712
HofmeisterAn merged 4 commits into
developfrom
feature/bump-docker-dotnet

Conversation

@HofmeisterAn

@HofmeisterAn HofmeisterAn commented Jun 23, 2026

Copy link
Copy Markdown
Collaborator

What does this PR do?

Bump Docker.DotNet from 4.2.0 to 4.3.2 to fix required string fields defaulting to empty string instead of null, and to defer endpoint resolution so it doesn't conflict with Testcontainers' own discovery. Also improve CI reliability by waiting for the Docker daemon to be ready before running tests (on Windows runners), where startup can be flaky.

Why is it important?

-

Related issues

-

Summary by CodeRabbit

  • Chores
    • Improved CI/CD pipeline robustness by refining test-projects collection and adding a pre-build wait for Docker to be ready.
  • Dependencies
    • Updated Docker.DotNet.Enhanced packages to version 4.3.2.
  • Tests
    • Improved HTTP test fixtures to better handle HTTP header termination before responding, reducing timing/response inconsistencies during containerized HTTP checks.

@HofmeisterAn HofmeisterAn added dependencies Pull requests that update a dependency file chore A change that doesn't impact the existing functionality, e.g. internal refactorings or cleanups labels Jun 23, 2026
@netlify

netlify Bot commented Jun 23, 2026

Copy link
Copy Markdown

Deploy Preview for testcontainers-dotnet ready!

Name Link
🔨 Latest commit de9c485
🔍 Latest deploy log https://app.netlify.com/projects/testcontainers-dotnet/deploys/6a3b5991d59d890008e65816
😎 Deploy Preview https://deploy-preview-1712--testcontainers-dotnet.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai

coderabbitai Bot commented Jun 23, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 1581bfe8-44d7-4544-a962-2d0554149a52

📥 Commits

Reviewing files that changed from the base of the PR and between 2835d7e and de9c485.

📒 Files selected for processing (2)
  • tests/Testcontainers.Platform.Linux.Tests/TarOutputMemoryStreamTest.cs
  • tests/Testcontainers.Tests/Unit/Configurations/WaitUntilHttpRequestIsSucceededTest.cs

Walkthrough

The CI workflow gains a PowerShell polling step that retries docker info every 2 seconds (up to 10 minutes) before build/test steps run, and a shell/run attribute reorder is applied to an existing step. The Docker.DotNet.Enhanced and Docker.DotNet.Enhanced.X509 package versions are bumped from 4.2.0 to 4.3.2. Test fixtures in two files are updated to properly consume HTTP request headers in Socat commands before sending responses.

Changes

CI and Docker Package Updates

Layer / File(s) Summary
CI workflow: Docker daemon wait step and shell reorder
.github/workflows/cicd.yml
Reorders shell and run attributes in the set-test-projects step (no functional change), and inserts a new Wait for Docker Daemon PowerShell step in the ci job that polls docker info every 2 seconds with a 10-minute timeout.
Docker.DotNet.Enhanced package bump
Directory.Packages.props
Bumps Docker.DotNet.Enhanced and Docker.DotNet.Enhanced.X509 PackageVersion values from 4.2.0 to 4.3.2.
Test fixture HTTP response handling
tests/Testcontainers.Platform.Linux.Tests/TarOutputMemoryStreamTest.cs, tests/Testcontainers.Tests/Unit/Configurations/WaitUntilHttpRequestIsSucceededTest.cs
Updates Socat SYSTEM: commands in HttpFixture containers to read incoming HTTP request lines until the empty header-terminating line is reached, then output HTTP 200 OK with Content-Length: 0, ensuring proper request consumption before response generation.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

Poem

🐇 Hop hop, the daemon must wake,
Before my tests begin to bake.
I poll and wait, two seconds between,
The freshest Docker libs now gleam.
Socat reads headers, responds just right—
No more flaky tests tonight! 🌟

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Title check ⚠️ Warning The PR title only mentions the Docker.DotNet version bump but omits other significant changes: CI/CD workflow improvements, HTTP connection handling in tests, and socat response modification. Expand the title to reflect all major changes, e.g., 'Bump Docker.DotNet and improve CI reliability with Docker daemon wait' or revise to cover the scope of changes beyond the dependency bump.
✅ Passed checks (4 passed)
Check name Status Explanation
Description check ✅ Passed The PR description addresses the main changes and provides context for the Docker.DotNet upgrade, but the 'Why is it important?' section is incomplete (marked with '\-') and lacks detail on why these specific bug fixes matter.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/bump-docker-dotnet

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
.github/workflows/cicd.yml (1)

85-92: 🚀 Performance & Scalability | 🔵 Trivial | 💤 Low value

Consider limiting this step to Windows runners.

The wait step addresses Windows-specific daemon readiness, but currently executes on all platforms. While the overhead on Linux/macOS is minimal (the daemon is typically ready immediately), you could optimize CI time by adding a conditional:

- name: Wait for Docker Daemon
  if: runner.os == 'Windows'
  run: do { docker info *> $null; Start-Sleep 2 } until ($LASTEXITCODE -eq 0)
  shell: pwsh
  timeout-minutes: 10

The current defensive approach (running everywhere) does provide consistency and guards against unexpected daemon startup delays on other platforms, so this optimization is optional.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/cicd.yml around lines 85 - 92, The "Wait for Docker
Daemon" step is currently executed on all runner platforms, but the Docker
daemon readiness check is specific to Windows runners. Add a conditional to the
step using the runner.os context variable to limit execution to Windows only,
which will optimize CI runtime on Linux and macOS platforms while maintaining
the defensive approach of checking daemon readiness where it matters most.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In @.github/workflows/cicd.yml:
- Around line 85-92: The "Wait for Docker Daemon" step is currently executed on
all runner platforms, but the Docker daemon readiness check is specific to
Windows runners. Add a conditional to the step using the runner.os context
variable to limit execution to Windows only, which will optimize CI runtime on
Linux and macOS platforms while maintaining the defensive approach of checking
daemon readiness where it matters most.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: b2f33a14-317a-480a-b904-c589ab87025c

📥 Commits

Reviewing files that changed from the base of the PR and between 1282048 and e438cfc.

📒 Files selected for processing (2)
  • .github/workflows/cicd.yml
  • Directory.Packages.props

@HofmeisterAn HofmeisterAn force-pushed the feature/bump-docker-dotnet branch from e438cfc to 2835d7e Compare June 23, 2026 18:09
@HofmeisterAn HofmeisterAn merged commit 0ba7b9c into develop Jun 24, 2026
85 checks passed
@HofmeisterAn HofmeisterAn deleted the feature/bump-docker-dotnet branch June 24, 2026 04:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore A change that doesn't impact the existing functionality, e.g. internal refactorings or cleanups dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant