Skip to content

fix: skip internal port check for Ryuk - #3858

Open
abicky wants to merge 1 commit into
testcontainers:mainfrom
abicky:skip-internal-check-for-ryuk
Open

fix: skip internal port check for Ryuk#3858
abicky wants to merge 1 commit into
testcontainers:mainfrom
abicky:skip-internal-check-for-ryuk

Conversation

@abicky

@abicky abicky commented Aug 24, 2026

Copy link
Copy Markdown

What does this PR do?

This PR skips Ryuk's internal port check by calling SkipInternalCheck().
The internal port check invokes /bin/sh, but the Ryuk images do not include a shell. As a result, it always exits with status 127, which WaitUntilReady ignores, so the internal check has no effect.

Why is it important?

I discovered this issue while using testcontainers-go with socktainer. During my investigation, I found that Ryuk's internal check effectively relies on docker exec returning exit status 127 for a missing executable. As described in socktainer/socktainer#383, socktainer instead returns a different exit status, causing the check to fail.
Since the internal check is ineffective for the current Ryuk images anyway—the images do not include a shell, and WaitUntilReady ignores exit status 127—skipping it does not change the readiness behavior while improving compatibility with alternative Docker implementations.

Related issues

The internal port check invokes /bin/sh, but the Ryuk images do not
include a shell. WaitUntilReady ignores the resulting exit status 127,
so the internal check has no effect.
@abicky
abicky requested a review from a team as a code owner August 24, 2026 14:40
@netlify

netlify Bot commented Aug 24, 2026

Copy link
Copy Markdown

Deploy Preview for testcontainers-go ready!

Name Link
🔨 Latest commit f16f9d1
🔍 Latest deploy log https://app.netlify.com/projects/testcontainers-go/deploys/6a8c57e69899f80008a1ac67
😎 Deploy Preview https://deploy-preview-3858--testcontainers-go.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 Aug 24, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 7403547b-cc99-4f65-8c55-601bc4bedaca

📥 Commits

Reviewing files that changed from the base of the PR and between 0103b91 and f16f9d1.

📒 Files selected for processing (1)
  • reaper.go

Included review availability: Your plan provides up to 8 included reviews per hour; 7 remain after this review.


Summary by CodeRabbit

  • Bug Fixes
    • Updated container startup checks to work with Ryuk images that do not include a shell.
    • Reaper readiness no longer depends on an internal listening-port check.

Walkthrough

The Ryuk reaper wait strategy skips the internal listening-port check and continues to verify external port readiness.

Changes

Ryuk reaper readiness

Layer / File(s) Summary
Skip Ryuk internal port check
reaper.go
The Ryuk listening-port wait strategy enables SkipInternalCheck and retains the external readiness check.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Merge Risk: ⚪ Minimal · up to f16f9

This change skips Ryuk's ineffective internal shell check while preserving readiness behavior and improving compatibility with alternative Docker implementations; no actionable merge-blocking risk remains after normal checks and review.

Suggested reviewers: mdelapenya, stevenh

Poem

I’m a rabbit who waits by the port,
The inner check now leaves the court.
Ryuk still signals from outside,
The reaper hops with steady stride.
Two quick lines, and readiness is bright!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed Docstring check was indeterminate for this PR — some files could not be analyzed in time. Not blocking.
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.
Title check ✅ Passed The title clearly and concisely describes the main change: skipping Ryuk's internal port check.
Description check ✅ Passed The description explains what the PR changes and why skipping the ineffective check improves compatibility.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

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