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
fi
# Deploy with compose (without --build since we already built the image)
# Network connection during compose can transiently fail on Docker 24;
# we catch it and connect networks manually below.
docker compose -f docker-compose.dev.yml -p nas-dashboard-dev up -d --pull never || true
# Create compose override that strips networks (Docker 24 compose
# fails to create the container when it can't connect networks).
# We connect networks manually after container creation.
cat > /tmp/docker-compose.ci-override.yml << YAMLEOF
services:
dashboard-dev:
networks: []
networks: {}
YAMLEOF
# Verify the container exists before proceeding
if ! docker inspect nas-dashboard-dev >/dev/null 2>&1; then
echo "❌ Container was not created by compose"
exit 1
fi
# Deploy without networks in compose
docker compose -f docker-compose.dev.yml -f /tmp/docker-compose.ci-override.yml -p nas-dashboard-dev up -d --pull never
# 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 gitea_gitea nas-dashboard-dev 2>/dev/null || true