Skip to content

ContainerSettings

Constructor - ContainerSettings(hstring imageName) - imageName must be non-empty.

Properties - ImageName() / setter - Name() / setter - InitProcess() / setter - NetworkingMode() / setter (None and Bridged only) - HostName() / setter - DomainName() / setter - EnableAutoRemove() / setter - EnableGpu() / setter - Privileged() / setter - PortMappings() / setter - Volumes() / setter - NamedVolumes() / setter

Important notes - Collection setters reject nullptr. - When converting to the C struct, null elements inside the collections are rejected.

using namespace winrt::Windows::Foundation::Collections;

ContainerSettings containerSettings{ L"demo-image:latest" };
containerSettings.Name(L"demo-container");
containerSettings.NetworkingMode(
    winrt::box_value(ContainerNetworkingMode::Bridged)
        .as<winrt::Windows::Foundation::IReference<ContainerNetworkingMode>>());
containerSettings.HostName(L"demo-host");
containerSettings.DomainName(L"localdomain");
containerSettings.EnableAutoRemove(false);
containerSettings.EnableGpu(false);
containerSettings.Privileged(false);

auto ports = single_threaded_vector<ContainerPortMapping>();
ports.Append(ContainerPortMapping{ 8080, 80, PortProtocol::TCP });
containerSettings.PortMappings(ports);

auto volumes = single_threaded_vector<ContainerVolume>();
volumes.Append(ContainerVolume{ L"C:\\src", L"/src", false });
containerSettings.Volumes(volumes);

auto namedVolumes = single_threaded_vector<ContainerNamedVolume>();
namedVolumes.Append(ContainerNamedVolume{ L"cache", L"/cache", false });
containerSettings.NamedVolumes(namedVolumes);