Summary
The library currently ships FlociContainer for the AWS emulator (Floci). The same vendor provides two sibling emulators — floci-az for Azure and floci-gcp for GCP — but neither has a Testcontainers module yet.
This issue requests dedicated container classes for both, following the same design as FlociContainer.
Motivation
Teams building multi-cloud applications or migrating between providers often test against Azure and GCP services alongside AWS. Having FlociAzContainer and FlociGcpContainer in this library would let them manage all three emulators through a single, consistent Testcontainers dependency — same lifecycle management, same pattern, no custom GenericContainer wiring per project.
Concrete use case: kestra-io/plugin-azure has integration tests for Blob Storage, Table Storage, Cosmos DB, Event Hubs, and Azure Functions that currently require real Azure credentials. floci-az covers all of those services, but without a Testcontainers module, each project must hand-roll its own GenericContainer<> wrapper.
Proposed API
Azure (FlociAzContainer)
floci-az exposes all services on a single port (4577).
var flociAz = new FlociAzContainer();
flociAz.start();
String blobEndpoint = flociAz.getBlobEndpoint();
String tableEndpoint = flociAz.getTableEndpoint();
String cosmosEndpoint = flociAz.getCosmosEndpoint();
String eventHubsEndpoint = flociAz.getEventHubsEndpoint();
GCP (FlociGcpContainer)
floci-gcp exposes all services on a single port (4588) using HTTP/2 ALPN routing.
var flociGcp = new FlociGcpContainer();
flociGcp.start();
String storageEndpoint = flociGcp.getStorageEndpoint();
String pubSubEndpoint = flociGcp.getPubSubEndpoint();
String firestoreEndpoint = flociGcp.getFirestoreEndpoint();
String secretManagerEndpoint = flociGcp.getSecretManagerEndpoint();
Gradle Dependency (proposed)
// Azure
testImplementation "io.floci:testcontainers-floci-az:<version>"
// GCP
testImplementation "io.floci:testcontainers-floci-gcp:<version>"
Or bundled as optional features of the existing io.floci:testcontainers-floci artifact — whichever fits the project structure best.
References
- floci-az repository: https://github.com/floci-io/floci-az — Azure emulator (Blob, Table, Cosmos DB, Event Hubs, Functions, Key Vault, App Configuration); single port 4577
- floci-gcp repository: https://github.com/floci-io/floci-gcp — GCP emulator (Cloud Storage, Pub/Sub, Firestore, Datastore, Secret Manager, IAM, Managed Kafka); single port 4588
- Existing
FlociContainer as the reference implementation
Summary
The library currently ships
FlociContainerfor the AWS emulator (Floci). The same vendor provides two sibling emulators — floci-az for Azure and floci-gcp for GCP — but neither has a Testcontainers module yet.This issue requests dedicated container classes for both, following the same design as
FlociContainer.Motivation
Teams building multi-cloud applications or migrating between providers often test against Azure and GCP services alongside AWS. Having
FlociAzContainerandFlociGcpContainerin this library would let them manage all three emulators through a single, consistent Testcontainers dependency — same lifecycle management, same pattern, no customGenericContainerwiring per project.Concrete use case: kestra-io/plugin-azure has integration tests for Blob Storage, Table Storage, Cosmos DB, Event Hubs, and Azure Functions that currently require real Azure credentials. floci-az covers all of those services, but without a Testcontainers module, each project must hand-roll its own
GenericContainer<>wrapper.Proposed API
Azure (
FlociAzContainer)floci-az exposes all services on a single port (4577).
GCP (
FlociGcpContainer)floci-gcp exposes all services on a single port (4588) using HTTP/2 ALPN routing.
Gradle Dependency (proposed)
Or bundled as optional features of the existing
io.floci:testcontainers-flociartifact — whichever fits the project structure best.References
FlociContaineras the reference implementation