fix: bypass Docker 24 compose network bug via override file

Docker 24.0.2 compose fails to create containers when it can't connect
external networks. Strip network configs from compose and connect
them manually after container creation.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Gan, Jimmy
2026-05-08 01:30:45 +08:00
parent 13480f70a3
commit 03e4c44434
+12 -10
View File
@@ -235,18 +235,20 @@ jobs:
docker network create nas-dashboard_internal docker network create nas-dashboard_internal
fi fi
# Deploy with compose (without --build since we already built the image) # Create compose override that strips networks (Docker 24 compose
# Network connection during compose can transiently fail on Docker 24; # fails to create the container when it can't connect networks).
# we catch it and connect networks manually below. # We connect networks manually after container creation.
docker compose -f docker-compose.dev.yml -p nas-dashboard-dev up -d --pull never || true cat > /tmp/docker-compose.ci-override.yml << YAMLEOF
services:
dashboard-dev:
networks: []
networks: {}
YAMLEOF
# Verify the container exists before proceeding # Deploy without networks in compose
if ! docker inspect nas-dashboard-dev >/dev/null 2>&1; then docker compose -f docker-compose.dev.yml -f /tmp/docker-compose.ci-override.yml -p nas-dashboard-dev up -d --pull never
echo "❌ Container was not created by compose"
exit 1
fi
# Manually connect to networks (idempotent, handles compose failure) # Manually connect to networks after container is created
docker network connect nas-dashboard_internal nas-dashboard-dev 2>/dev/null || true docker network connect nas-dashboard_internal nas-dashboard-dev 2>/dev/null || true
docker network connect gitea_gitea nas-dashboard-dev 2>/dev/null || true docker network connect gitea_gitea nas-dashboard-dev 2>/dev/null || true