name: Host-Based Deploy (Java 21 Fix) on: push: branches: - master jobs: build-and-run: # WICHTIG: Hier nutzen wir das neue Host-Label runs-on: pve-host steps: - name: Checkout Code run: | # Debug: Wer ist git.langhei.de? cat /etc/hosts ping -c 1 git.langhei.de || echo "Ping failed" # Sicherstellen, dass wir im richtigen Verzeichnis sind rm -rf ./* || true # Versuch über die Domain git clone http://git.langhei.de/Entwicklung/xxx-sphere-web.git . || \ # FALLBACK: Versuch über die IP direkt, falls DNS im Container hakt git clone http://192.168.178.93:3000/Entwicklung/xxx-sphere-web.git . git config --global http.sslVerify false git checkout master - name: Build Docker Image (Native Java 21) run: | # 1. Paketmanager finden und Java 21 installieren if command -v apt-get >/dev/null; then apt-get update && apt-get install -y openjdk-21-jdk-headless elif command -v apk >/dev/null; then apk add --no-cache openjdk21 fi # 2. Docker-Socket Rechte korrigieren (DER ENTSCHEIDENDE FIX) # Wir machen den Socket für alle beschreibbar, damit der Build-Prozess darauf zugreifen kann chmod 666 /var/run/docker.sock # 3. JAVA_HOME setzen export JAVA_HOME=$(java -XshowSettings:properties -version 2>&1 > /dev/null | grep 'java.home' | awk '{print $3}') export PATH=$JAVA_HOME/bin:$PATH # 4. Gradle Build chmod +x gradlew # Wir geben den DOCKER_HOST explizit mit DOCKER_HOST=unix:///var/run/docker.sock ./gradlew bootBuildImage --imageName=xxx-sphere-web:latest - name: Deploy Container run: | docker compose up -d --force-recreate