v0.1.0-alpha.0 — first public alpha
Pre-release
Pre-release
First public alpha of testcontainers-cpp — a native C++20 port of Testcontainers: spin up real Docker containers from your integration tests and tear them down automatically. No docker CLI, no Rust bridge — a pure C++ client talking to the Docker Engine HTTP API directly (Boost.Beast/Asio).
Highlights
- Containers:
GenericImage→Containerlifecycle with typed config (env, ports, mounts, networks, labels, entrypoint, workdir/user, tty, host config patches), lifecycle hooks, startup retry, and container reuse. - Wait strategies: log, HTTP, health, port, exit, and composite waits with per-strategy deadlines.
- Exec: stdin (HTTP 101 upgrade + half-close), tty, streaming output, exit codes.
- Images: pull with registry auth (config.json incl. credential helpers), build from Dockerfile (
GenericBuildableImage), image substitution. - Networks & volumes: create/inspect/remove, IPAM basics, volume seeding.
- Copy: to/from container (tar over the API, no CLI).
- Docker Compose: local (host CLI), containerised (
docker:cliambassador), and auto client modes; per-service wait + TCP probes. - Ryuk: crash-safe reaping via the standard
testcontainers/ryuksidecar. - Transports: Windows named pipe (message-mode half-close), unix socket, TCP, TLS (client certs; end-to-end TLS against a remote daemon is the main unverified gap).
Platforms & CI
Green on Windows (named pipe, MSVC) and Linux (unix socket, gcc): ~300 unit tests + ~65 integration tests against a real daemon. CI runs the full integration suite on Linux and the unit suite on Windows for every push.
Status
Alpha: the core is feature-complete, but the API may still change. Known limits per subsystem are documented in docs/06-feature-notes.md; the actionable backlog lives in TODO.md.
Licensed under MIT or Apache-2.0, at your option.