diff --git a/dokku b/dokku index 50959c0ecb2..eb7c84afe4e 100755 --- a/dokku +++ b/dokku @@ -122,9 +122,11 @@ case "$1" in cleanup) # delete all non-running container - docker rm "$(docker ps -a -f 'status=exited' -q)" &> /dev/null & + # shellcheck disable=SC2046 + docker rm $(docker ps -a -f 'status=exited' -q) &> /dev/null & # delete unused images - docker rmi "$(docker images -f 'dangling=true' -q)" &> /dev/null & + # shellcheck disable=SC2046 + docker rmi $(docker images -f 'dangling=true' -q) &> /dev/null & ;; plugins) diff --git a/tests/unit/cleanup.bats b/tests/unit/cleanup.bats index 3c21b490a92..22e0c4f5bde 100644 --- a/tests/unit/cleanup.bats +++ b/tests/unit/cleanup.bats @@ -11,12 +11,12 @@ teardown() { } @test "remove exited containers" { - run dokku run $TEST_APP hostname + # make sure we have many exited containers of the same 'type' + run bash -c "for cnt in 1 2 3; do dokku run $TEST_APP hostname; done" echo "output: "$output echo "status: "$status - container="$output" assert_success - run bash -c "docker ps -a -f 'status=exited' -q --no-trunc=false | grep -q $container" + run bash -c "docker ps -a -f 'status=exited' --no-trunc=false | grep '/exec hostname'" echo "output: "$output echo "status: "$status assert_success @@ -24,7 +24,8 @@ teardown() { echo "output: "$output echo "status: "$status assert_success - run bash -c "docker ps -a -f 'status=exited' -q --no-trunc=false | grep -q $container" + sleep 5 # wait for dokku cleanup to happen in the background + run bash -c "docker ps -a -f 'status=exited' --no-trunc=false | grep '/exec hostname'" echo "output: "$output echo "status: "$status assert_failure