diff --git a/.github/workflows/release-docker.yml b/.github/workflows/release-docker.yml index 0771b9f..3481294 100644 --- a/.github/workflows/release-docker.yml +++ b/.github/workflows/release-docker.yml @@ -119,23 +119,41 @@ jobs: echo "image=$IMAGE" >> "$GITHUB_OUTPUT" echo "lower_repo=$LOWER_REPO" >> "$GITHUB_OUTPUT" - - name: Ensure Docker CLI is available + - name: Ensure Docker CLI is available and up to date run: | + install_docker=true + + # Prüfen, ob Docker existiert und ob die Version ausreicht if command -v docker >/dev/null 2>&1; then - docker --version - exit 0 + # Extrahiere die Major-Version (z. B. "20" aus "20.10.24" oder "26" aus "26.1.0") + DOCKER_MAJOR=$(docker --version | grep -oE '[0-9]+' | head -n1) + + # API 1.44 erfordert mindestens Docker v25 + if [ -n "$DOCKER_MAJOR" ] && [ "$DOCKER_MAJOR" -ge 25 ]; then + install_docker=false + fi fi - if command -v apt-get >/dev/null 2>&1; then - apt-get update - DEBIAN_FRONTEND=noninteractive apt-get install -y docker.io - elif command -v apk >/dev/null 2>&1; then - apk add --no-cache docker-cli + if [ "$install_docker" = true ]; then + echo "Veraltete oder fehlende Docker-Installation erkannt. Führe Update durch..." + if command -v apt-get >/dev/null 2>&1; then + apt-get update + DEBIAN_FRONTEND=noninteractive apt-get install -y curl + # Nutzt das offizielle Docker-Skript (installiert docker-ce statt das alte docker.io) + curl -fsSL https://get.docker.com | sh + elif command -v apk >/dev/null 2>&1; then + apk update + apk add --no-cache docker-cli + else + echo "Error: no supported package manager found to install docker" + exit 1 + fi else - echo "Error: no supported package manager found to install docker" - exit 1 + echo "Docker CLI ist bereits auf einem aktuellen Stand." fi + docker --version + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3