diff --git a/.github/workflows/release-docker.yml b/.github/workflows/release-docker.yml index 6dc0c90..c817955 100644 --- a/.github/workflows/release-docker.yml +++ b/.github/workflows/release-docker.yml @@ -125,7 +125,7 @@ jobs: # Prüfen, ob Docker existiert und ob die Version ausreicht if command -v docker >/dev/null 2>&1; then - # Extrahiere die Major-Version (z. B. "20" aus "20.10.24" oder "26" aus "26.1.0") + # Extrahiere die Major-Version DOCKER_MAJOR=$(docker --version | grep -oE '[0-9]+' | head -n1) # API 1.44 erfordert mindestens Docker v25 @@ -135,19 +135,31 @@ jobs: fi 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 + echo "Veraltete oder fehlende Docker-Installation erkannt. Lade statische Docker CLI herunter..." + + DOCKER_VERSION="26.1.4" + + # Download der statischen Binaries via curl oder wget (umgeht apt-get komplett) + if command -v curl >/dev/null 2>&1; then + curl -fsSLO "https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKER_VERSION}.tgz" else - echo "Error: no supported package manager found to install docker" - exit 1 + wget -q "https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKER_VERSION}.tgz" fi + + tar -xzf docker-${DOCKER_VERSION}.tgz + + # Installation in lokalen Benutzer-Pfad, um sudo/root-Rechte-Probleme zu vermeiden + mkdir -p "$HOME/.local/bin" + cp docker/docker "$HOME/.local/bin/" + + # Pfad für nachfolgende GitHub Actions Schritte verfügbar machen + echo "$HOME/.local/bin" >> "$GITHUB_PATH" + + # Pfad für diesen spezifischen Shell-Run exportieren + export PATH="$HOME/.local/bin:$PATH" + + rm -rf docker docker-${DOCKER_VERSION}.tgz + echo "Docker CLI wurde erfolgreich aktualisiert." else echo "Docker CLI ist bereits auf einem aktuellen Stand." fi