Since testcontainers-go :material-tag: v0.28.0
The Testcontainers module for Consul.
Please run the following command to add the Consul module to your Go dependencies:
go get github.com/testcontainers/testcontainers-go/modules/consul
Creating a Consul container inside_block:runConsulContainer
The Consul module exposes one entrypoint function to create the Consul container, and this function receives two parameters:
func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomizer) (*ConsulContainer, error)
context.Context
, the Go context.testcontainers.ContainerCustomizer
, a variadic argument for passing options.
When starting the Consul container, you can pass options in a variadic way to configure it.
If you need to set a different Consul Docker image, you can use testcontainers.WithImage
with a valid Docker image
for Consul. E.g. testcontainers.WithImage("docker.io/hashicorp/consul:1.15")
.
{% include "../features/common_functional_options.md" %}
If you need to customize the behavior for the deployed node you can use either WithConfigString(config string)
or WithConfigFile(configPath string)
.
The configuration has to be in JSON format and will be loaded at the node startup.
The Consul container exposes the following method:
This method returns the connection string to connect to the Consul container API, using the default 8500
port.
Using ApiEndpoint with the Consul client inside_block:connectConsul