FIX: Never prune Docker volumes
authorSaj Goonatilleke <saj@discourse.org>
Wed, 18 Sep 2019 17:58:47 +0000 (03:58 +1000)
committerSaj Goonatilleke <sg@redu.cx>
Thu, 19 Sep 2019 15:51:09 +0000 (01:51 +1000)
`system prune` on older Docker releases will remove volumes.  The
accidental removal of container volumes may result in user data loss.

This patch should ensure that any users on Docker CE <17.06.1 benefit
from the same, safer behaviour enjoyed by users on contemporary Docker
releases.

launcher

index b94284fab074d40bdc919757d9537bf94ea4bd39..7fb6ea9a1ee1fdb1311ac2bb73894cc02810793c 100755 (executable)
--- a/launcher
+++ b/launcher
@@ -235,7 +235,8 @@ check_prereqs() {
       echo
       if [[ $REPLY =~ ^[Yy]$ ]]
       then
-        $docker_path system prune -af
+        $docker_path container prune --force --filter until=1h >/dev/null
+        $docker_path image prune --all --force --filter until=1h >/dev/null
         echo "If the cleanup was successful, you may try again now"
       fi
     fi
@@ -469,7 +470,8 @@ if [ -z $docker_path ]; then
 fi
 
 [ "$command" == "cleanup" ] && {
-  $docker_path system prune -a
+  $docker_path container prune --filter until=1h >/dev/null
+  $docker_path image prune --all --filter until=1h >/dev/null
 
   if [ -d /var/discourse/shared/standalone/postgres_data_old ]; then
     echo