Skip to content

Conversation

@DCjanus
Copy link
Contributor

@DCjanus DCjanus commented Nov 4, 2025

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.rs and testcontainers/src/core/containers/sync_container.rs, which are the entry points for end users and can also serve as starting points for code reading.

@netlify
Copy link

netlify bot commented Nov 4, 2025

Deploy Preview for testcontainers-rust ready!

Name Link
🔨 Latest commit 7715f99
🔍 Latest deploy log https://app.netlify.com/projects/testcontainers-rust/deploys/692aa17daedb2d0008d15e9a
😎 Deploy Preview https://deploy-preview-871--testcontainers-rust.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.

@DCjanus DCjanus marked this pull request as draft November 4, 2025 17:17
@DCjanus DCjanus marked this pull request as ready for review November 5, 2025 03:15
@DDtKey DDtKey requested a review from Copilot November 28, 2025 06:15
Copilot finished reviewing on behalf of DDtKey November 28, 2025 06:16
Copy link
Contributor

Copilot AI left a 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.

@DCjanus DCjanus requested a review from Copilot November 28, 2025 14:54
Copilot finished reviewing on behalf of DCjanus November 28, 2025 14:55
Copy link
Contributor

Copilot AI left a 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.

Copy link
Contributor

@DDtKey DDtKey left a 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!

@DDtKey DDtKey merged commit 593913c into testcontainers:main Dec 1, 2025
18 checks passed
@github-actions github-actions bot mentioned this pull request Dec 1, 2025
DDtKey pushed a commit that referenced this pull request Dec 1, 2025
## 🤖 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>
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.

[Feature Request] Support copying files *from* a running container to the host

2 participants