-
Notifications
You must be signed in to change notification settings - Fork 174
feat: support copying from containers #871
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
Conversation
✅ Deploy Preview for testcontainers-rust ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
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.
Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.
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.
Pull request overview
Copilot reviewed 11 out of 11 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <[email protected]>
DDtKey
left a comment
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.
Looks good to me! 🚀
Thanks a lot for all your contributions!
## 🤖 New release
* `testcontainers`: 0.25.2 -> 0.26.0 (⚠ API breaking changes)
### ⚠ `testcontainers` breaking changes
```text
--- failure enum_variant_added: enum variant added on exhaustive enum ---
Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/enum_variant_added.ron
Failed in:
variant ClientError:CopyFromContainerError in /tmp/.tmpqTygAe/testcontainers-rs/testcontainers/src/core/client.rs:135
variant ClientError:CopyFromContainerError in /tmp/.tmpqTygAe/testcontainers-rs/testcontainers/src/core/client.rs:135
--- failure inherent_method_missing: pub method removed or renamed ---
Description:
A publicly-visible method or associated fn is no longer available under its prior name. It may have been renamed or removed entirely.
ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/inherent_method_missing.ron
Failed in:
ContainerAsync::id, previously in file /tmp/.tmpozwe0G/testcontainers/src/core/containers/async_container.rs:132
ContainerAsync::ports, previously in file /tmp/.tmpozwe0G/testcontainers/src/core/containers/async_container.rs:143
ContainerAsync::get_host_port_ipv4, previously in file /tmp/.tmpozwe0G/testcontainers/src/core/containers/async_container.rs:155
ContainerAsync::get_host_port_ipv6, previously in file /tmp/.tmpozwe0G/testcontainers/src/core/containers/async_container.rs:174
ContainerAsync::get_bridge_ip_address, previously in file /tmp/.tmpozwe0G/testcontainers/src/core/containers/async_container.rs:186
ContainerAsync::get_host, previously in file /tmp/.tmpozwe0G/testcontainers/src/core/containers/async_container.rs:224
ContainerAsync::exec, previously in file /tmp/.tmpozwe0G/testcontainers/src/core/containers/async_container.rs:232
ContainerAsync::stop, previously in file /tmp/.tmpozwe0G/testcontainers/src/core/containers/async_container.rs:299
ContainerAsync::stdout, previously in file /tmp/.tmpozwe0G/testcontainers/src/core/containers/async_container.rs:354
ContainerAsync::stderr, previously in file /tmp/.tmpozwe0G/testcontainers/src/core/containers/async_container.rs:364
ContainerAsync::stdout_to_vec, previously in file /tmp/.tmpozwe0G/testcontainers/src/core/containers/async_container.rs:372
ContainerAsync::stderr_to_vec, previously in file /tmp/.tmpozwe0G/testcontainers/src/core/containers/async_container.rs:381
ContainerAsync::id, previously in file /tmp/.tmpozwe0G/testcontainers/src/core/containers/async_container.rs:132
ContainerAsync::ports, previously in file /tmp/.tmpozwe0G/testcontainers/src/core/containers/async_container.rs:143
ContainerAsync::get_host_port_ipv4, previously in file /tmp/.tmpozwe0G/testcontainers/src/core/containers/async_container.rs:155
ContainerAsync::get_host_port_ipv6, previously in file /tmp/.tmpozwe0G/testcontainers/src/core/containers/async_container.rs:174
ContainerAsync::get_bridge_ip_address, previously in file /tmp/.tmpozwe0G/testcontainers/src/core/containers/async_container.rs:186
ContainerAsync::get_host, previously in file /tmp/.tmpozwe0G/testcontainers/src/core/containers/async_container.rs:224
ContainerAsync::exec, previously in file /tmp/.tmpozwe0G/testcontainers/src/core/containers/async_container.rs:232
ContainerAsync::stop, previously in file /tmp/.tmpozwe0G/testcontainers/src/core/containers/async_container.rs:299
ContainerAsync::stdout, previously in file /tmp/.tmpozwe0G/testcontainers/src/core/containers/async_container.rs:354
ContainerAsync::stderr, previously in file /tmp/.tmpozwe0G/testcontainers/src/core/containers/async_container.rs:364
ContainerAsync::stdout_to_vec, previously in file /tmp/.tmpozwe0G/testcontainers/src/core/containers/async_container.rs:372
ContainerAsync::stderr_to_vec, previously in file /tmp/.tmpozwe0G/testcontainers/src/core/containers/async_container.rs:381
--- failure trait_method_added: pub trait method added ---
Description:
A non-sealed public trait added a new method without a default implementation, which breaks downstream implementations of the trait
ref: https://doc.rust-lang.org/cargo/reference/semver.html#trait-new-item-no-default
impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/trait_method_added.ron
Failed in:
trait method testcontainers::runners::AsyncBuilder::build_image_with in file /tmp/.tmpqTygAe/testcontainers-rs/testcontainers/src/runners/async_builder.rs:11
```
<details><summary><i><b>Changelog</b></i></summary><p>
<blockquote>
## [0.26.0] - 2025-12-01
### Details
#### Bug Fixes
- Make port_bindings consistent with docker cli when publish_all_ports =
true
([#885](#885))
#### Features
- Support build options - `no_cache`, `skip_if_exists` and `buildargs`
([#856](#856))
- Support docker-compose
([#864](#864))
- Add target options with custom mode
([#878](#878))
- Support copying from containers
([#871](#871))
#### Miscellaneous Tasks
- Use bollard 0.19.4
([#870](#870))
- Update etcetera requirement from 0.10.0 to 0.11.0
([#869](#869))
#### Performance
- Replace `ulid` with `ferroid`'s ULID for better performance
([#829](#829))
- Update ferroid for better performance during encode/decode
([#879](#879))
</blockquote>
</p></details>
---
This PR was generated with
[release-plz](https://github.com/release-plz/release-plz/).
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Close #867
For the reviewers:
The core implementation of this PR,
testcontainers/src/core/copy.rs, could consider starting with this file for reading.The entry files are
testcontainers/src/core/containers/async_container.rsandtestcontainers/src/core/containers/sync_container.rs, which are the entry points for end users and can also serve as starting points for code reading.