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. Java 21 & Docker-CLI installieren (CLI wird für Sockets oft benötigt) if command -v apt-get >/dev/null; then apt-get update && apt-get install -y openjdk-21-jdk-headless docker.io elif command -v apk >/dev/null; then apk add --no-cache openjdk21 docker-cli fi # 2. Socket-Berechtigung innerhalb des Containers erzwingen # Wir versuchen den aktuellen User in die Docker-Gruppe zu mogeln 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 mit expliziten Docker-Berechtigungen chmod +x gradlew # Wir nutzen sudo, falls vorhanden, um den Creator-Prozess zu starten if command -v sudo >/dev/null; then sudo ./gradlew bootBuildImage --imageName=xxx-sphere-web:latest else ./gradlew bootBuildImage --imageName=xxx-sphere-web:latest fi - name: Deploy Container run: | docker compose up -d --force-recreate