From 596e5fffe6302f5cabbc90139367dc5e4e0f73f2 Mon Sep 17 00:00:00 2001 From: nmemmert <67961292+nmemmert@users.noreply.github.com> Date: Mon, 31 Aug 2026 11:59:06 -0400 Subject: [PATCH] fix: deploy step stops containers before recreating to avoid ContainerConfig bug docker-compose 1.29.x fails with KeyError: 'ContainerConfig' when trying to recreate containers built from newer image manifests. Explicitly stopping and removing before 'up -d' avoids the inspection of old container state. Co-Authored-By: Claude Sonnet 4.6 --- .gitea/workflows/docker-build.yml | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/docker-build.yml b/.gitea/workflows/docker-build.yml index cf342d9..b5edf51 100644 --- a/.gitea/workflows/docker-build.yml +++ b/.gitea/workflows/docker-build.yml @@ -128,13 +128,22 @@ jobs: script: | cd ${{ secrets.DEPLOY_PATH }} echo "${{ secrets.REGISTRY_TOKEN }}" | docker login git.necloud.us -u "${{ secrets.REGISTRY_USER }}" --password-stdin + + # Pull new images first if docker compose version > /dev/null 2>&1; then - docker compose pull backend frontend - docker compose up -d --no-build backend frontend + COMPOSE="docker compose" else - docker-compose pull backend frontend - docker-compose up -d --no-build backend frontend + COMPOSE="docker-compose" fi + + $COMPOSE pull backend frontend + + # Stop and remove old containers so docker-compose up creates fresh ones + # (works around ContainerConfig bug in docker-compose 1.29.x) + $COMPOSE stop backend frontend || true + $COMPOSE rm -f backend frontend || true + $COMPOSE up -d backend frontend + docker logout git.necloud.us docker image prune -f