Improve Docker Compose rollback
CI / smoke-test (push) Successful in 56s

This commit is contained in:
Mikhail Lobanov
2026-10-15 12:46:50 +03:00
parent 222ae06b87
commit 42bb0db99b
+8 -21
View File
@@ -75,7 +75,7 @@ jobs:
run: | run: |
set -eu set -eu
OLD_IMAGE=$(docker inspect --format='{{.Image}}' devops-platform) OLD_IMAGE=$(docker inspect --format='{{.Config.Image}}' devops-platform)
docker pull "$IMAGE" docker pull "$IMAGE"
docker stop devops-platform docker stop devops-platform
@@ -85,16 +85,10 @@ jobs:
echo "New container started" echo "New container started"
else else
echo "Failed to start new container; restoring old image" echo "Failed to start new container; restoring old image"
docker run -d \ docker rm -f devops-platform || true
--name devops-platform \ if ! IMAGE="$OLD_IMAGE" docker compose up -d --no-build app; then
--restart unless-stopped \ echo "ERROR: rollback failed; manual recovery required"
--read-only \ fi
--cap-drop=ALL \
--security-opt=no-new-privileges:true \
--memory=256m \
--cpus=0.5 \
-p 127.0.0.1:8000:8000 \
"$OLD_IMAGE"
exit 1 exit 1
fi fi
@@ -115,15 +109,8 @@ jobs:
echo "Health check failed; rolling back" echo "Health check failed; rolling back"
docker stop devops-platform || true docker stop devops-platform || true
docker rm devops-platform || true docker rm devops-platform || true
docker run -d \ if ! IMAGE="$OLD_IMAGE" docker compose up -d --no-build app; then
--name devops-platform \ echo "ERROR: rollback failed; manual recovery required"
--restart unless-stopped \ fi
--read-only \
--cap-drop=ALL \
--security-opt=no-new-privileges:true \
--memory=256m \
--cpus=0.5 \
-p 127.0.0.1:8000:8000 \
"$OLD_IMAGE"
exit 1 exit 1
fi fi