|
testcontainers-cpp 0.2.0
Native C++20 Testcontainers over the Docker Engine API
|
The flat create-body DTO for POST /containers/create, shared between the builder layer (ContainerRequest renders into it) and the client — typed fields for every option the library surfaces, translated into the daemon's JSON in one place. More...
#include <testcontainers/docker/ContainerSpec.hpp>
Public Attributes | |
| std::string | image |
| "alpine:3.20" | |
| std::vector< std::string > | cmd |
| command / args | |
| std::vector< std::string > | entrypoint |
| Entrypoint override. | |
| std::vector< std::string > | env |
| "KEY=VALUE" entries | |
| std::vector< std::string > | exposed_ports |
| "6379/tcp" | |
| std::vector< std::string > | published_ports |
| Ports to publish to daemon-assigned ephemeral host ports (HostConfig.PortBindings with an empty HostPort). | |
| std::vector< std::pair< std::string, std::string > > | labels |
| container labels | |
| std::optional< std::string > | name |
| container name (?name=) | |
| std::optional< std::string > | platform |
| "<os>/<arch>" (?platform=) | |
| std::optional< std::string > | network |
| HostConfig.NetworkMode. | |
| std::vector< std::string > | network_aliases |
| DNS aliases on network (NetworkingConfig). | |
| std::optional< std::string > | static_ipv4 |
| Fixed IPv4 address on network (NetworkingConfig ... IPAMConfig.IPv4Address). | |
| std::optional< std::string > | working_dir |
| WorkingDir. | |
| std::optional< std::string > | user |
| User. | |
| bool | tty = false |
| Tty (allocate a pseudo-TTY; raw/unframed log stream). | |
| bool | publish_all_ports = false |
| HostConfig.PublishAllPorts. | |
| bool | privileged = false |
| HostConfig.Privileged. | |
| bool | auto_remove = false |
| HostConfig.AutoRemove. | |
| std::vector< Mount > | mounts |
| HostConfig.Mounts. | |
| std::optional< Healthcheck > | healthcheck |
| Healthcheck (create-body). | |
| std::optional< std::int64_t > | memory_bytes |
| HostConfig.Memory (hard limit, bytes). | |
| std::optional< std::int64_t > | shm_size_bytes |
| HostConfig.ShmSize (bytes). | |
| std::optional< std::int64_t > | nano_cpus |
| HostConfig.NanoCpus (1e9 = one CPU). | |
| std::optional< std::string > | cpuset_cpus |
| HostConfig.CpusetCpus ("0-2,7"). | |
| std::optional< std::int64_t > | pids_limit |
| HostConfig.PidsLimit (-1 = unlimited). | |
| std::vector< Ulimit > | ulimits |
| HostConfig.Ulimits. | |
| std::vector< std::string > | cap_add |
| HostConfig.CapAdd. | |
| std::vector< std::string > | cap_drop |
| HostConfig.CapDrop. | |
| std::vector< std::string > | extra_hosts |
| HostConfig.ExtraHosts ("host:ip"). | |
| std::optional< RestartPolicy > | restart_policy |
| HostConfig.RestartPolicy. | |
| std::vector< std::string > | dns_servers |
| HostConfig.Dns. | |
| std::vector< std::string > | dns_search |
| HostConfig.DnsSearch (search domains). | |
| std::vector< std::string > | dns_options |
| HostConfig.DnsOptions (resolver options). | |
| std::vector< std::pair< std::string, std::string > > | sysctls |
| HostConfig.Sysctls. | |
| std::vector< Device > | devices |
| HostConfig.Devices. | |
| std::optional< std::string > | isolation |
| HostConfig.Isolation ("process"/"hyperv"; Windows daemons). | |
| std::string | create_body_patch |
| Raw JSON object deep-merged into the create body (escape hatch); empty = none. | |
The flat create-body DTO for POST /containers/create, shared between the builder layer (ContainerRequest renders into it) and the client — typed fields for every option the library surfaces, translated into the daemon's JSON in one place.
| std::string testcontainers::CreateContainerSpec::image |
"alpine:3.20"
| std::vector<std::string> testcontainers::CreateContainerSpec::cmd |
command / args
| std::vector<std::string> testcontainers::CreateContainerSpec::entrypoint |
Entrypoint override.
| std::vector<std::string> testcontainers::CreateContainerSpec::env |
"KEY=VALUE" entries
| std::vector<std::string> testcontainers::CreateContainerSpec::exposed_ports |
"6379/tcp"
| std::vector<std::string> testcontainers::CreateContainerSpec::published_ports |
Ports to publish to daemon-assigned ephemeral host ports (HostConfig.PortBindings with an empty HostPort).
Publishes EXACTLY these — unlike publish_all_ports, which also publishes every port the image EXPOSEs (surprise bindings: an image exposing 22 collides with the host's sshd).
| std::vector<std::pair<std::string, std::string> > testcontainers::CreateContainerSpec::labels |
container labels
| std::optional<std::string> testcontainers::CreateContainerSpec::name |
container name (?name=)
| std::optional<std::string> testcontainers::CreateContainerSpec::platform |
"<os>/<arch>" (?platform=)
| std::optional<std::string> testcontainers::CreateContainerSpec::network |
HostConfig.NetworkMode.
| std::vector<std::string> testcontainers::CreateContainerSpec::network_aliases |
DNS aliases on network (NetworkingConfig).
| std::optional<std::string> testcontainers::CreateContainerSpec::static_ipv4 |
Fixed IPv4 address on network (NetworkingConfig ... IPAMConfig.IPv4Address).
| std::optional<std::string> testcontainers::CreateContainerSpec::working_dir |
WorkingDir.
| std::optional<std::string> testcontainers::CreateContainerSpec::user |
User.
| bool testcontainers::CreateContainerSpec::tty = false |
Tty (allocate a pseudo-TTY; raw/unframed log stream).
| bool testcontainers::CreateContainerSpec::publish_all_ports = false |
HostConfig.PublishAllPorts.
| bool testcontainers::CreateContainerSpec::privileged = false |
HostConfig.Privileged.
| bool testcontainers::CreateContainerSpec::auto_remove = false |
HostConfig.AutoRemove.
| std::vector<Mount> testcontainers::CreateContainerSpec::mounts |
HostConfig.Mounts.
| std::optional<Healthcheck> testcontainers::CreateContainerSpec::healthcheck |
Healthcheck (create-body).
| std::optional<std::int64_t> testcontainers::CreateContainerSpec::memory_bytes |
HostConfig.Memory (hard limit, bytes).
| std::optional<std::int64_t> testcontainers::CreateContainerSpec::shm_size_bytes |
HostConfig.ShmSize (bytes).
| std::optional<std::int64_t> testcontainers::CreateContainerSpec::nano_cpus |
HostConfig.NanoCpus (1e9 = one CPU).
| std::optional<std::string> testcontainers::CreateContainerSpec::cpuset_cpus |
HostConfig.CpusetCpus ("0-2,7").
| std::optional<std::int64_t> testcontainers::CreateContainerSpec::pids_limit |
HostConfig.PidsLimit (-1 = unlimited).
| std::vector<Ulimit> testcontainers::CreateContainerSpec::ulimits |
HostConfig.Ulimits.
| std::vector<std::string> testcontainers::CreateContainerSpec::cap_add |
HostConfig.CapAdd.
| std::vector<std::string> testcontainers::CreateContainerSpec::cap_drop |
HostConfig.CapDrop.
| std::vector<std::string> testcontainers::CreateContainerSpec::extra_hosts |
HostConfig.ExtraHosts ("host:ip").
| std::optional<RestartPolicy> testcontainers::CreateContainerSpec::restart_policy |
HostConfig.RestartPolicy.
| std::vector<std::string> testcontainers::CreateContainerSpec::dns_servers |
HostConfig.Dns.
| std::vector<std::string> testcontainers::CreateContainerSpec::dns_search |
HostConfig.DnsSearch (search domains).
| std::vector<std::string> testcontainers::CreateContainerSpec::dns_options |
HostConfig.DnsOptions (resolver options).
| std::vector<std::pair<std::string, std::string> > testcontainers::CreateContainerSpec::sysctls |
HostConfig.Sysctls.
| std::vector<Device> testcontainers::CreateContainerSpec::devices |
HostConfig.Devices.
| std::optional<std::string> testcontainers::CreateContainerSpec::isolation |
HostConfig.Isolation ("process"/"hyperv"; Windows daemons).
| std::string testcontainers::CreateContainerSpec::create_body_patch |
Raw JSON object deep-merged into the create body (escape hatch); empty = none.