Custom configuration¶
You can override some default properties if your environment requires that.
Configuration locations¶
The configuration may be loaded from multiple locations. Properties are considered in the following order:
- Environment variables
~/.testcontainers.properties
file (a Java properties file, enabled by theproperties-config
feature) Example locations:
Linux:/home/myuser/.testcontainers.properties
Windows:C:/Users/myuser/.testcontainers.properties
macOS:/Users/myuser/.testcontainers.properties
Docker host resolution¶
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.
Docker authentication¶
Sometimes the Docker images you use live in a private Docker registry. For that reason, Testcontainers for Rust gives you the ability to read the Docker configuration and retrieve the authentication for a given registry. Configuration is fetched in the following order:
DOCKER_AUTH_CONFIG
environment variable, unmarshalling the string value from its JSON representation and using it as the Docker config.DOCKER_CONFIG
environment variable, as an alternative path to the directory containing Dockerconfig.json
file.- else it will load the default Docker config file, which lives in the user's home, e.g.
~/.docker/config.json
.
bollard, rustls and SSL Cryptography providers¶
testcontainers
uses bollard
to interact with the Docker API.
bollard
in turn has options provided by rustls
to configure its SSL cryptography providers.
The testcontainers
feature flags to control this are as follows:
* ring
- use rustls
with ring
as the cryptography provider (default)
* aws-lc-rs
- use rustls
with aws-lc-rs
as the cryptography provider
* ssl
- use rustls
with a custom cryptography provider configuration - see bollard and rustls documentation for more.