listDockerContainers function
List containers
Implementation
Future<List<DockerContainer>> listDockerContainers([bool listAll = false])async{
List<DockerContainer> containers = [];
List<String> arguments = [
'ps',
'--format=json',
];
if(listAll){
arguments.add("-a");
}
ProcessResult result = await Process.run(
dockerCommand,
arguments,
runInShell: true,
);
if(result.exitCode == 0){
String resultAsString = result.stdout;
resultAsString = resultAsString.replaceAll("}\n{", "}[split_me]{");
List<String> jsons = resultAsString.split("[split_me]");
//print(resultAsString);
for(String json in jsons){
try{
Map<String,dynamic> parsedJSON = jsonDecode(json);
containers.add(DockerContainer(
command: parsedJSON["Command"],
createdAt: parsedJSON["CreatedAt"],
id: parsedJSON["ID"],
image: parsedJSON["Image"],
labels: parsedJSON["Labels"],
localVolumes: parsedJSON["LocalVolumes"],
mounts: parsedJSON["Mounts"],
names: parsedJSON["Names"],
networks: parsedJSON["Networks"],
ports: parsedJSON["Ports"],
runningFor: parsedJSON["RunningFor"],
size: parsedJSON["Size"],
state: parsedJSON["State"],
status: parsedJSON["Status"],
));
}catch(error){
//Do nothing
}
}
}else{
throw result.stderr;
}
return containers;
}