Testcontainers for Perl 5 - a library for managing Docker containers in tests. Inspired by the Go reference implementation (https://golang.testcontainers.org/). Uses WWW::Docker as the Docker client library.
lib/Testcontainers.pm- Main entry point withrun()functionlib/Testcontainers/Container.pm- Running container wrapperlib/Testcontainers/ContainerRequest.pm- Container configurationlib/Testcontainers/DockerClient.pm- WWW::Docker wrapperlib/Testcontainers/Labels.pm- Label management (org.testcontainers.*)lib/Testcontainers/Wait.pm- Wait strategy factorylib/Testcontainers/Wait/*.pm- Wait strategy implementationslib/Testcontainers/Module/*.pm- Pre-built container moduleslib/WWW/Docker.pm- Vendored Docker clientlib/WWW/Docker/*.pm- Vendored Docker client components
t/01-load.t- Module loading (no Docker)t/02-container-request.t- ContainerRequest unit tests (no Docker)t/03-wait-strategies.t- Wait strategy unit tests (no Docker)t/04-integration.t- Integration tests (requires Docker, TESTCONTAINERS_LIVE=1)t/05-modules.t- Module integration tests (requires Docker, TESTCONTAINERS_LIVE=1)t/06-basic.tthrought/12-volumes.t- WWW::Docker unit tests (no Docker)
# Unit tests only
prove -l t/01-load.t t/02-container-request.t t/03-wait-strategies.t
# All tests including integration (requires Docker)
TESTCONTAINERS_LIVE=1 prove -l t/- Perl 5.40+
- Moo (object system)
- WWW::Docker (vendored Docker client)
- Log::Any (logging)
- HTTP::Tiny (optional, for HTTP wait strategy)