Releases: testcontainers/testcontainers-rs
Releases · testcontainers/testcontainers-rs
v0.17.0
Migration guide
- The largest change of this release is switch to fallible API (instead of panics)
- the easiest way to use
unwrap
orexpect
for alltestcontainers
operations. - or you can cast error if your tests are already
Result
based
- the easiest way to use
- The
Image::exec_after_start
method returns aResult
, so if you have an implementation ofImage
that usesexec_after_start
, it's important to handle possible errors (e.g required port not found) - If you encounter container startup timeout, adjust it with
RunnableImage::with_startup_timeout
- Change
testcontainers::CgroupnsMode
totestcontainers::core::CgroupnsMode
if your code rely on this. exec
now returns a result with ability to get exit code and logs of the command. You can ignore the result if you don't need this.
Details
Bug Fixes
- Collect bridge IP address correctly (#626)
Features
- Impl
Error
forWaitError
(#629) - [❗] Extend
exec
interface to return logs and exec code (#631) - Ability to access container logs (#633)
- [❗] Switch to fallible API (#636)
- Make container and exec logs
Send
able (#637) - Map container not found error to
eof
for container log streams (#639) - Expose follow flag for
stdout
andstderr
(#640) - Add ability to read container logs into
Vec
(#641) - [❗] Add container startup timeout with default of 1 minute (#643)
Miscellaneous Tasks
- Fix clippy warning without features enabled (#632)
Refactor
v0.16.7
Details
Bug Fixes
get_host
forunix
andnpipe
docker hosts (#621)
Features
- Extend
WaitFor
forExecCommand
(#622)
Migration guide
See the migration guide in release 0.16.0 in order to upgrade the crate from 0.15
to 0.16.x
version
v0.16.6
Details
Features
- Add
get_host
toContainer
and deprecateget_host_ip_address
(#618) - Allow cgroupns-mode and userns-mode to be configured (#605)
Migration guide
See the migration guide in release 0.16.0. To update from 0.15
to 0.16.x
v0.16.5
Details
Bug Fixes
- Correct drop of a network for sync container (#612)
- Correct default for
get_host_ip_address
in case ofunix
ornpipe
(#613)
Miscellaneous Tasks
- Update
serde-java-properties
to0.2.0
(#614)
Migration guide
See the migration guide in release 0.16.0. To update from 0.15
to 0.16.x
v0.16.4
Details
Bug Fixes
- Properly expose mapped ports (#610)
Features
- Introduce
properties-config
cargo feature (#608) - Support docker auth configuration for image pulling (#609)
Migration guide
See the migration guide in release 0.16.0. To update from 0.15
to 0.16.x
v0.16.3
Details
Bug Fixes
- Expose mount-related types (#603)
Migration guide
See the migration guide in release 0.16.0. To update from 0.15
to 0.16.x
v0.16.2
Details
Documentation
- Fix
docsrs
attributes
Migration guide
See the migration guide in release 0.16.0. To update from 0.15
to 0.16.x
v0.16.1
Details
Documentation
Migration guide
See the migration guide in release 0.16.0. To update from 0.15
to 0.16.x
v0.16.0
Details
Bug Fixes
- Use the binds option instead of volumes for mounts (#581)
Documentation
- Mention a way to preserve running containers (#586)
Features
- Support for docker cli flag
--add-host
(#547) - Allow to override args in a
RunnableImage
(#558) - Add
name
parameter toRunnableImage
(#549) - [❗] Container-centric API with refactored underlying layer (#575)
- Add ability to pull-image explicitly (#579)
Miscellaneous Tasks
- Remove
spectral
fromdev-dependencies
(#526) - Update reqwest requirement from 0.11.14 to 0.12.3 (#569)
- Update bollard and bollard-stubs (#574)
- Reuse workspace level configs (#568)
Refactor
- [❗] Api for mounts and volumes (#596)
Styling
- Derive
Default
to fix clippy lint (#525) - Actualize formatting configs (#567)
- Enable
StdExternalCrate
grouping
Migration guide
- Sync API migration (
Cli
client)- Add
blocking
feature - Drop all usages of
clients::Cli
- Add
use testcontainers::runners::SyncRunner;
- Replace
client.run(image)
withimage.start()
- Add
- Async API migration (
Http
client)- Remove
experimental
feature - Drop all usages of
clients::Http
- Add
use testcontainers::runners::AsyncRunner;
- Replace
client.run(image)
withimage.start()
- Remove
- ENV variable
TESTCONTAINERS
was renamed toTESTCONTAINERS_COMMAND
and still accepts eitherremove
(default to remove containers on drop) orkeep
ExecCommand
interface was changed to builder-like:- use
ExecCommand::new(cmd)
instead ofExecCommand { ... }
cmd
isVec<String>
now, so make sure your commands are separated- use any of the new methods to check the result
with_container_ready_conditions
&with_cmd_ready_condition
- use
- If your
Image
implementsvolumes
method:- rename method to
mounts
- wrap all existed "volumes" into
Mount::bind_mount(host_path, container_path)
- rename method to
- If your code uses
RunnableImage::with_volume
- replace the call with
RunnableImage::with_mount
- replace the call with
- If your code uses
GenericImage::with_volume
- replace the call with
GenericImage::with_mount
- replace the call with
Docker host resolution
We have completely switched to an http client with special host resolution logic.
The host is resolved in the following order:
- Docker host from the
tc.host
property in the~/.testcontainers.properties
file. DOCKER_HOST
environment variable.- Docker host from the "docker.host" property in the
~/.testcontainers.properties
file. - Else, the default Docker socket will be returned.
0.15
Merge pull request #524 from testcontainers/release/0.15