diff options
Diffstat (limited to 'packages/microsoft.dotnet.buildtools/2.1.0-rc1-02804-05/lib/scripts/docker/cleanup-docker.sh')
-rwxr-xr-x | packages/microsoft.dotnet.buildtools/2.1.0-rc1-02804-05/lib/scripts/docker/cleanup-docker.sh | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/packages/microsoft.dotnet.buildtools/2.1.0-rc1-02804-05/lib/scripts/docker/cleanup-docker.sh b/packages/microsoft.dotnet.buildtools/2.1.0-rc1-02804-05/lib/scripts/docker/cleanup-docker.sh new file mode 100755 index 0000000000..6380535dc0 --- /dev/null +++ b/packages/microsoft.dotnet.buildtools/2.1.0-rc1-02804-05/lib/scripts/docker/cleanup-docker.sh @@ -0,0 +1,55 @@ +#!/usr/bin/perl + +# +# ./cleanup-docker.sh +# + +printf "Cleaning up containers\n"; +printf "----------------------\n"; +my $psList = `docker ps -a`; +my @psItems = split /\n/, $psList; +foreach(@psItems) { + # match 'docker ps' output to capture the container name + if($_ =~ /.*\s+([^\s]+)$/ig) { + my $containerName = $1; + if($containerName !~ /NAME/ig) { + printf "delete $containerName\n"; + my $deleteOutput = `docker rm -f $1`; + print "$deleteOutput\n"; + } + } +} + +printf "Cleaning up volumes\n"; +printf "-------------------\n"; +my $volumeList = `docker volume ls`; +@volumeItems = split /\n/, $volumeList; +foreach(@volumeItems) { + # match 'docker volume ls' output to capture the volume name + if($_ =~ /([^\s]+)\s+([^\s]+)$/ig) { + my $volumeName = $2; + if($volumeName !~ /NAME/ig) { + printf "delete $volumeName\n"; + my $deleteVolumeOutput = `docker volume rm -f $volumeName`; + printf "$deleteVolumeOutput\n"; + } + } +} + +printf "Cleaning up images\n"; +printf "------------------\n"; +my $imageList = `docker images`; +@imageItems = split /\n/, $imageList; +foreach(@imageItems) { + # match 'docker images' output to capture the image id + if($_ =~ /([^\s]+)\s+([^\s]+)\s+([^\s]+)\s+.*/ig) { + my $imageId = $3; + if($imageId !~ /IMAGE/ig) { + my $imageRepo = $1; + my $imageTag = $2; + printf "delete $imageId ($imageRepo:$imageTag)\n"; + my $deleteImageOutput = `docker rmi -f $imageId`; + printf "$deleteImageOutput\n"; + } + } +} |