run method
Implementation
Future<D> run(DockerCommander dockerCommander,
{String? name,
String? network,
String? hostname,
List<int>? hostPorts,
bool cleanContainer = true,
int? outputLimit}) {
var mappedPorts = ports?.toList();
hostPorts ??= this.hostPorts;
if (hostPorts != null &&
containerPorts != null &&
hostPorts.isNotEmpty &&
containerPorts!.isNotEmpty) {
mappedPorts ??= <String>[];
var portsLength = Math.min(hostPorts.length, containerPorts!.length);
for (var i = 0; i < portsLength; ++i) {
var p1 = hostPorts[i];
var p2 = containerPorts![i];
mappedPorts.add('$p1:$p2');
}
mappedPorts = mappedPorts.toSet().toList();
}
var dockerContainer = dockerCommander.run(
image,
version: version,
imageArgs: imageArgs,
containerName: name ?? this.name,
ports: mappedPorts,
network: network ?? this.network,
hostname: hostname ?? this.hostname,
environment: environment,
volumes: volumes,
cleanContainer: cleanContainer,
outputAsLines: outputAsLines,
outputLimit: outputLimit ?? this.outputLimit,
stdoutReadyFunction: stdoutReadyFunction,
stderrReadyFunction: stderrReadyFunction,
dockerContainerInstantiator: instantiateDockerContainer,
);
return dockerContainer.then((value) async {
var d = value as D;
await initializeContainer(d);
return d;
});
}