buildContainerArgs method
ContainerInfos
buildContainerArgs(
- String cmd,
- String imageName,
- String? version,
- String containerName,
- List<
String> ? ports, - String? network,
- String? hostname,
- Map<
String, String> ? environment, - Map<
String, String> ? volumes, - bool cleanContainer,
- String? healthCmd,
- Duration? healthInterval,
- int? healthRetries,
- Duration? healthStartPeriod,
- Duration? healthTimeout,
- String? restart,
Implementation
ContainerInfos buildContainerArgs(
String cmd,
String imageName,
String? version,
String containerName,
List<String>? ports,
String? network,
String? hostname,
Map<String, String>? environment,
Map<String, String>? volumes,
bool cleanContainer,
String? healthCmd,
Duration? healthInterval,
int? healthRetries,
Duration? healthStartPeriod,
Duration? healthTimeout,
String? restart,
) {
var image = DockerHost.resolveImage(imageName, version);
ports = DockerHost.normalizeMappedPorts(ports);
var args = <String>[
if (isNotEmptyString(cmd)) cmd,
'--name',
containerName,
];
if (cleanContainer) {
args.add('--rm');
}
if (isNotEmptyString(restart, trim: true)) {
restart = restart!.trim();
args.add('--restart');
args.add(restart);
}
if (ports != null) {
for (var pair in ports) {
args.add('-p');
args.add(pair);
}
}
String? containerNetwork;
if (isNotEmptyString(network, trim: true)) {
containerNetwork = network!.trim();
args.add('--net');
args.add(containerNetwork);
}
String? containerHostname;
if (isNotEmptyString(hostname, trim: true)) {
containerHostname = hostname!.trim();
args.add('-h');
args.add(containerHostname);
}
volumes?.forEach((k, v) {
if (isNotEmptyString(k) && isNotEmptyString(k)) {
args.add('-v');
args.add('$k:$v');
}
});
environment?.forEach((k, v) {
if (isNotEmptyString(k)) {
args.add('-e');
args.add('$k=$v');
}
});
args.add(image);
return ContainerInfos(containerName, null, image, ports, containerNetwork,
containerHostname, args);
}