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.