fix: use separate docker ps calls to remove containers by name prefix
Deploy to route.crispygoat.com / deploy (push) Failing after 12s
Build / build (push) Has been cancelled

Multiple --filter name= flags are ANDed in docker ps, so combining
route_commerce_ and route-commerce- in one call matched nothing and
left db/minio running. Split into two calls, dedup with sort -u.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
tyler
2026-06-05 19:09:40 -06:00
parent 0771b401f3
commit 7dd29cc44f
+10 -6
View File
@@ -42,17 +42,21 @@ jobs:
# Hard-stop the previous stack by name — works even if docker-compose.yml
# is missing or stale from a prior failed deploy.
docker ps -aq --filter "name=route_commerce_" --filter "name=route-commerce-" | xargs -r docker rm -f 2>/dev/null || true
docker compose -f $APP_DIR/docker-compose.yml down --remove-orphans 2>/dev/null || true
# Remove the network explicitly so Docker allocates a fresh subnet.
# Note: multiple --filter name= flags are ANDed; use two separate calls.
{
docker ps -aq --filter "name=route_commerce_"
docker ps -aq --filter "name=route-commerce-"
} | sort -u | xargs -r docker rm -f
# Network can only be removed after all containers are detached.
docker network rm route-commerce_default 2>/dev/null || true
sleep 3
sleep 2
# Verify all route-commerce containers are gone before picking a port.
REMAINING=$(docker ps -aq --filter "name=route_commerce_" --filter "name=route-commerce-" | wc -l)
REMAINING=$({ docker ps -aq --filter "name=route_commerce_"; docker ps -aq --filter "name=route-commerce-"; } | sort -u | wc -l)
if [ "$REMAINING" -gt 0 ]; then
echo "ERROR: $REMAINING route-commerce container(s) still running after teardown"
docker ps --filter "name=route_commerce_" --filter "name=route-commerce-"
docker ps --filter "name=route_commerce_"
docker ps --filter "name=route-commerce-"
exit 1
fi