From 03e4c44434da71fb914b20fe18058f5460dac66d Mon Sep 17 00:00:00 2001 From: "Gan, Jimmy" Date: Fri, 8 May 2026 01:30:45 +0800 Subject: [PATCH] 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 --- .gitea/workflows/deploy-dev.yml | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/.gitea/workflows/deploy-dev.yml b/.gitea/workflows/deploy-dev.yml index 144e7c2..ac2f68b 100644 --- a/.gitea/workflows/deploy-dev.yml +++ b/.gitea/workflows/deploy-dev.yml @@ -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