@@ -59,7 +59,7 @@ print_info() {
5959}
6060
6161echo " =========================================="
62- echo " BigBear CasaOS Docker Version Fix Script 2025.11.1 "
62+ echo " BigBear CasaOS Docker Version Fix Script 2025.12.0 "
6363echo " =========================================="
6464echo " "
6565echo " Here are some links:"
@@ -595,16 +595,30 @@ EOF
595595 # Reload systemd daemon
596596 echo " Reloading systemd daemon..."
597597 $SUDO systemctl daemon-reload
598+ sleep 2
598599 echo " "
599600
600601 # Restart Docker
601602 echo " Restarting Docker service..."
602603 timeout 30 $SUDO systemctl restart docker
603- sleep 3
604+
605+ # Wait for Docker to be fully ready with active polling
606+ echo " Waiting for Docker to be fully ready..."
607+ local docker_ready=false
608+ for i in {1..10}; do
609+ if $SUDO systemctl is-active --quiet docker 2> /dev/null; then
610+ if timeout 5 $SUDO docker info > /dev/null 2>&1 ; then
611+ docker_ready=true
612+ break
613+ fi
614+ fi
615+ echo " Waiting for Docker... ($i /10)"
616+ sleep 2
617+ done
604618 echo " "
605619
606620 # Verify Docker is running
607- if $SUDO systemctl is-active --quiet docker; then
621+ if [ " $docker_ready " = true ] || $SUDO systemctl is-active --quiet docker; then
608622 echo " ✓ Docker service restarted successfully"
609623
610624 # Show current Docker info
@@ -651,15 +665,29 @@ remove_docker_api_override() {
651665 # Reload systemd daemon
652666 echo " Reloading systemd daemon..."
653667 $SUDO systemctl daemon-reload
668+ sleep 2
654669 echo " "
655670
656671 # Restart Docker
657672 echo " Restarting Docker service..."
658673 timeout 30 $SUDO systemctl restart docker
659- sleep 3
674+
675+ # Wait for Docker to be fully ready with active polling
676+ echo " Waiting for Docker to be fully ready..."
677+ local docker_ready=false
678+ for i in {1..10}; do
679+ if $SUDO systemctl is-active --quiet docker 2> /dev/null; then
680+ if timeout 5 $SUDO docker info > /dev/null 2>&1 ; then
681+ docker_ready=true
682+ break
683+ fi
684+ fi
685+ echo " Waiting for Docker... ($i /10)"
686+ sleep 2
687+ done
660688 echo " "
661689
662- if $SUDO systemctl is-active --quiet docker; then
690+ if [ " $docker_ready " = true ] || $SUDO systemctl is-active --quiet docker; then
663691 echo " ✓ Docker API override removed successfully"
664692 echo " "
665693 return 0
@@ -1230,40 +1258,77 @@ downgrade_docker() {
12301258 # Reload systemd and restart Docker service
12311259 echo " Reloading systemd daemon..."
12321260 $SUDO systemctl daemon-reload
1261+ # Wait for systemd to fully process the reload
1262+ sleep 2
12331263 echo " "
12341264
12351265 # Ensure Docker is completely stopped before starting
12361266 echo " Step 7.2: Ensuring Docker is completely stopped..."
12371267 timeout 30 $SUDO systemctl stop docker.socket 2> /dev/null || true
12381268 timeout 30 $SUDO systemctl stop docker 2> /dev/null || true
1239- sleep 2
1269+ sleep 3
12401270
12411271 # Use the new function to ensure processes are stopped
12421272 ensure_docker_processes_stopped
12431273
12441274 # Stop containerd to ensure clean slate
12451275 echo " Restarting containerd for clean state..."
12461276 timeout 30 $SUDO systemctl stop containerd 2> /dev/null || true
1247- sleep 1
1277+ sleep 2
12481278 if pgrep -x containerd > /dev/null 2>&1 ; then
12491279 $SUDO pkill -9 containerd 2> /dev/null || true
1250- sleep 1
1280+ sleep 2
12511281 fi
12521282 $SUDO systemctl start containerd 2> /dev/null || true
1253- sleep 2
1283+
1284+ # Wait for containerd to be fully ready before starting Docker
1285+ echo " Waiting for containerd to be fully ready..."
1286+ local containerd_ready=false
1287+ for i in {1..10}; do
1288+ if $SUDO systemctl is-active --quiet containerd 2> /dev/null; then
1289+ containerd_ready=true
1290+ echo " ✓ containerd is ready"
1291+ break
1292+ fi
1293+ echo " Waiting for containerd... ($i /10)"
1294+ sleep 1
1295+ done
1296+
1297+ if [ " $containerd_ready " = false ]; then
1298+ echo " ⚠ WARNING: containerd may not be fully ready, proceeding anyway..."
1299+ fi
12541300 echo " "
12551301
12561302 # Enable and start docker socket first, then service
12571303 echo " Step 7.3: Enabling and starting Docker socket..."
12581304 $SUDO systemctl enable docker.socket 2> /dev/null || true
12591305 $SUDO systemctl start docker.socket
1260- sleep 1
1306+ sleep 2
12611307 echo " "
12621308
12631309 echo " Step 7.4: Enabling and starting Docker service..."
12641310 $SUDO systemctl enable docker
12651311 $SUDO systemctl start docker
1266- sleep 5 # Give Docker more time to fully initialize
1312+
1313+ # Wait for Docker to be fully ready with active polling instead of fixed sleep
1314+ echo " Waiting for Docker to be fully ready..."
1315+ local docker_ready=false
1316+ for i in {1..15}; do
1317+ if $SUDO systemctl is-active --quiet docker 2> /dev/null; then
1318+ # Double-check that Docker is actually responding
1319+ if timeout 5 $SUDO docker info > /dev/null 2>&1 ; then
1320+ docker_ready=true
1321+ echo " ✓ Docker is ready and responding"
1322+ break
1323+ fi
1324+ fi
1325+ echo " Waiting for Docker... ($i /15)"
1326+ sleep 2
1327+ done
1328+
1329+ if [ " $docker_ready " = false ]; then
1330+ echo " ⚠ Docker may not be fully ready after 30 seconds..."
1331+ fi
12671332 echo " "
12681333
12691334 # Verify Docker is running
@@ -1573,23 +1638,23 @@ main() {
15731638 case " $1 " in
15741639 apply-override|override)
15751640 echo " =========================================="
1576- echo " BigBear CasaOS Docker Version Fix Script 2025.11.1 "
1641+ echo " BigBear CasaOS Docker Version Fix Script 2025.12.0 "
15771642 echo " =========================================="
15781643 echo " "
15791644 apply_docker_api_override
15801645 exit $?
15811646 ;;
15821647 remove-override|no-override)
15831648 echo " =========================================="
1584- echo " BigBear CasaOS Docker Version Fix Script 2025.11.1 "
1649+ echo " BigBear CasaOS Docker Version Fix Script 2025.12.0 "
15851650 echo " =========================================="
15861651 echo " "
15871652 remove_docker_api_override
15881653 exit $?
15891654 ;;
15901655 help|--help|-h)
15911656 echo " =========================================="
1592- echo " BigBear CasaOS Docker Version Fix Script 2025.11.1 "
1657+ echo " BigBear CasaOS Docker Version Fix Script 2025.12.0 "
15931658 echo " =========================================="
15941659 echo " "
15951660 show_usage
0 commit comments