Workflow angepasst
Some checks failed
Host-Based Deploy (Java 21 Fix) / build-and-run (push) Failing after 32s

This commit is contained in:
2026-04-01 17:18:21 +02:00
parent 865210acad
commit 6ce4b897f2
2 changed files with 21 additions and 17 deletions

View File

@@ -26,32 +26,32 @@ jobs:
git config --global http.sslVerify false
git checkout master
- name: Build Docker Image (Native Java 21)
- name: Build and Deploy (LXC-Safe)
run: |
# 1. Java 21 & Docker-CLI installieren (CLI wird für Sockets oft benötigt)
# 1. Java 21 im Runner-Container installieren
if command -v apt-get >/dev/null; then
apt-get update && apt-get install -y openjdk-21-jdk-headless docker.io
apt-get update && apt-get install -y openjdk-21-jdk-headless
elif command -v apk >/dev/null; then
apk add --no-cache openjdk21 docker-cli
apk add --no-cache openjdk21
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
# 2. 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
# 3. Das JAR-File bauen (Hier brauchen wir noch kein Docker!)
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
./gradlew bootJar
# 4. Docker-Socket Berechtigung (für den finalen Build)
chmod 666 /var/run/docker.sock
# 5. Das Image klassisch bauen
# Wir suchen das gebaute JAR und bauen das Image
docker build -t xxx-sphere-web:latest .
# 6. Container starten
docker compose up -d --force-recreate
- name: Deploy Container
run: |

4
Dockerfile Normal file
View File

@@ -0,0 +1,4 @@
FROM eclipse-temurin:21-jre-noble
WORKDIR /app
COPY build/libs/*.jar app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]