diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 4617adf..74a668e 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -78,20 +78,27 @@ jobs: # Логин в реестр echo '${{ secrets.CR_TOKEN }}' | docker login ${{ env.DOCKER_REGISTRY }} -u '${{ secrets.CR_USER }}' --password-stdin - # Скачать образ - docker pull "$IMAGE" + # Сохранить ID текущего образа до pull + OLD_IMAGE_ID=$(docker images -q "$IMAGE" 2>/dev/null || true) - # Остановить старый контейнер (если переименован) - docker stop "frontend-style-guide" 2>/dev/null || true - docker rm "frontend-style-guide" 2>/dev/null || true + # Скачать новый образ + docker pull "$IMAGE" # Перезапустить контейнер docker stop "$CONTAINER" 2>/dev/null || true docker rm "$CONTAINER" 2>/dev/null || true docker run -d --name "$CONTAINER" --network web --restart unless-stopped "$IMAGE" - # Очистка старых образов + # Удалить старый образ если он отличается от нового + NEW_IMAGE_ID=$(docker images -q "$IMAGE") + if [ -n "$OLD_IMAGE_ID" ] && [ "$OLD_IMAGE_ID" != "$NEW_IMAGE_ID" ]; then + docker rmi "$OLD_IMAGE_ID" 2>/dev/null || true + fi + + # Очистка: dangling-образы, неиспользуемые volumes, build-кеш + docker image prune -af --filter "label=org.opencontainers.image.title=$CONTAINER" docker image prune -f + docker builder prune -f 2>/dev/null || true # Статус docker ps --filter "name=$CONTAINER"