Skip to content

LocalStack Module

Testcontainers module for LocalStack, 'a fully functional local AWS cloud stack', to develop and test your cloud and serverless apps without actually using the cloud.

Usage example

You can start a LocalStack container instance from any Java application by using:

LocalStackContainer localstack = new LocalStackContainer(LocalstackTestImages.LOCALSTACK_IMAGE)
    .withServices("s3")

Environment variables listed in the LocalStack configuration documentation may be used to customize LocalStack's configuration. Use the .withEnv(key, value) method on LocalStackContainer to apply configuration settings.

Note

Starting March 23, 2026, localstack/localstack requires authentication via a LOCALSTACK_AUTH_TOKEN environment variable. Without it, the container will fail to start.

Use .withEnv("LOCALSTACK_AUTH_TOKEN", System.getenv("LOCALSTACK_AUTH_TOKEN")) to pass the token. See the LocalStack blog post for more details.

Creating a client using AWS SDK

S3Client s3 = S3Client
    .builder()
    .endpointOverride(localstack.getEndpoint())
    .credentialsProvider(
        StaticCredentialsProvider.create(
            AwsBasicCredentials.create(localstack.getAccessKey(), localstack.getSecretKey())
        )
    )
    .region(Region.of(localstack.getRegion()))
    .build();

Adding this module to your project dependencies

Add the following dependency to your pom.xml/build.gradle file:

testImplementation "org.testcontainers:testcontainers-localstack:2.0.4"
<dependency>
    <groupId>org.testcontainers</groupId>
    <artifactId>testcontainers-localstack</artifactId>
    <version>2.0.4</version>
    <scope>test</scope>
</dependency>