-
-
Notifications
You must be signed in to change notification settings - Fork 657
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ensure that exited docker containers do not pollute self-hosted insta… #1702
base: main
Are you sure you want to change the base?
Conversation
WalkthroughThe changes update the Changes
Sequence Diagram(s)sequenceDiagram
participant U as User
participant D as DockerTaskOperations
participant E as Docker Engine
participant C as Container
U->>D: Call create()
D->>E: Build command (includes "--rm")
E->>C: Start container
C-->>E: Container exits
E->>E: Automatically remove container (--rm)
Suggested Reviewers
Poem
Warning There were issues while running some tools. Please review the errors and either fix the tool’s configuration or disable the tool if it’s a critical failure. 🔧 ESLint
apps/docker-provider/src/index.tsOops! Something went wrong! :( ESLint: 8.45.0 ESLint couldn't find the config "custom" to extend from. Please check that the name of the config is correct. The config "custom" was referenced from the config file in "/.eslintrc.js". If you still have problems, please stop by https://eslint.org/chat/help to chat with the team. ✨ Finishing Touches
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
apps/docker-provider/src/index.ts (1)
226-226
: Address the FIXME comment about skipping port extraction in production.The comment indicates that port extraction from logs should be skipped in production. This should be implemented to improve reliability and performance in production environments.
Would you like me to help implement the production environment check and skip the port extraction logic?
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
apps/docker-provider/src/index.ts
(1 hunks)
🔇 Additional comments (2)
apps/docker-provider/src/index.ts (2)
135-149
: LGTM! Robust error handling for container creation.The error handling is comprehensive, including proper type checking, detailed error logging, and appropriate error propagation.
118-118
: LGTM! The "--rm" flag addition effectively prevents container pollution.The addition of the "--rm" flag ensures that Docker automatically removes the container when it exits, which directly addresses the issue of exited containers polluting self-hosted instances.
Let's verify that this change doesn't interfere with container restoration functionality:
✅ Verification successful
🏁 Script executed:
#!/bin/bash # Description: Check if there are any references to container restoration that might be affected by auto-removal # Search for container restoration related code rg -A 5 'restore|checkpoint|start' apps/docker-provider/src/Length of output: 2592
Container restoration functionality remains unaffected by the "--rm" flag addition.
After reviewing the restoration code in
apps/docker-provider/src/index.ts
, we confirmed the following:
- The restoration logic (e.g., the
restore
method) operates on containers that are not yet fully exited. For instance, it exercises a simulation path withdocker unpause
and a checkpoint restore path withdocker start --checkpoint=...
, both of which require the container to still exist.- The
--rm
flag only triggers post container exit. In scenarios where container restoration is necessary, the container is expected to be paused or stopped (but not exited), so the auto-removal does not occur.- There are no indications in the file that this change interferes with the checkpoints or restore operations.
…nces #1567
Closes #1567
✅ Checklist
Testing
[Describe the steps you took to test this change]
Changelog
[Short description of what has changed]
Screenshots
[Screenshots]
💯