diff --git a/.gitea/workflows/production-deploy.yml b/.gitea/workflows/production-deploy.yml index b6d44921..30d3d306 100644 --- a/.gitea/workflows/production-deploy.yml +++ b/.gitea/workflows/production-deploy.yml @@ -390,10 +390,10 @@ jobs: if [ $LOGIN_EXIT_CODE -eq 0 ]; then echo "✅ Erfolgreich bei Registry angemeldet über HTTP: $TEST_URL:5000" REGISTRY_URL="$TEST_URL:5000" - ACTUAL_REGISTRY="$TEST_URL:5000" + ACTUAL_REGISTRY=$(echo "$TEST_URL:5000" | sed 's|^/||' | sed 's|/$||') LOGIN_SUCCESS=true echo "REGISTRY_URL=$TEST_URL:5000" >> $GITHUB_ENV - echo "ACTUAL_REGISTRY=$TEST_URL:5000" >> $GITHUB_ENV + echo "ACTUAL_REGISTRY=$ACTUAL_REGISTRY" >> $GITHUB_ENV break else echo "⚠️ HTTP-Login fehlgeschlagen für $TEST_URL:5000, versuche nächste URL..." @@ -436,12 +436,19 @@ jobs: echo "" echo "✅ Registry-Login erfolgreich!" echo "📦 Verwendete Registry URL: $REGISTRY_URL" + echo "📦 ACTUAL_REGISTRY: $ACTUAL_REGISTRY" # Stelle sicher, dass ACTUAL_REGISTRY gesetzt ist (für Build-Step) - if [ -z "$ACTUAL_REGISTRY" ]; then + if [ -z "$ACTUAL_REGISTRY" ] || [ "$ACTUAL_REGISTRY" = "/" ]; then ACTUAL_REGISTRY="$REGISTRY_URL" - echo "ACTUAL_REGISTRY=$REGISTRY_URL" >> $GITHUB_ENV fi + + # Entferne führende/trailing Slashes + ACTUAL_REGISTRY=$(echo "$ACTUAL_REGISTRY" | sed 's|^/||' | sed 's|/$||') + + # Schreibe bereinigte Registry in GITHUB_ENV + echo "ACTUAL_REGISTRY=$ACTUAL_REGISTRY" >> $GITHUB_ENV + echo "📝 Finale ACTUAL_REGISTRY (für Build): $ACTUAL_REGISTRY" - name: Build and push Docker image shell: bash @@ -451,12 +458,25 @@ jobs: cd /workspace/repo # Fallback falls ACTUAL_REGISTRY nicht gesetzt wurde - if [ -z "$ACTUAL_REGISTRY" ]; then - echo "⚠️ ACTUAL_REGISTRY nicht gesetzt, verwende Fallback: ${{ env.REGISTRY }}" + if [ -z "$ACTUAL_REGISTRY" ] || [ "$ACTUAL_REGISTRY" = "/" ] || [ "$ACTUAL_REGISTRY" = "" ]; then + echo "⚠️ ACTUAL_REGISTRY nicht gesetzt oder leer, verwende Fallback: ${{ env.REGISTRY }}" ACTUAL_REGISTRY="${{ env.REGISTRY }}" fi + # Entferne führende/trailing Slashes aus ACTUAL_REGISTRY + ACTUAL_REGISTRY=$(echo "$ACTUAL_REGISTRY" | sed 's|^/||' | sed 's|/$||') + + # Validierung: Stelle sicher, dass ACTUAL_REGISTRY nicht leer ist + if [ -z "$ACTUAL_REGISTRY" ]; then + echo "❌ Fehler: ACTUAL_REGISTRY ist leer! Kann kein Image bauen." + echo "REGISTRY env: ${{ env.REGISTRY }}" + echo "ACTUAL_REGISTRY env: ${{ env.ACTUAL_REGISTRY }}" + exit 1 + fi + echo "📦 Verwendete Registry für Build: $ACTUAL_REGISTRY" + echo "📝 Image Name: ${{ env.IMAGE_NAME }}" + echo "🏷️ Vollständiger Image-Pfad: ${ACTUAL_REGISTRY}/${{ env.IMAGE_NAME }}:latest" COMMIT_SHA="${{ github.sha }}" if [ -z "$COMMIT_SHA" ]; then @@ -469,15 +489,15 @@ jobs: SHORT_SHA=$(echo "$COMMIT_SHA" | cut -c1-7) TAG="${SHORT_SHA}-$(date +%s)" - # Build with cache + # Build with cache - verwende REGISTRY_TO_USE Variable docker buildx build \ --platform linux/amd64 \ --file ./Dockerfile.production \ - --tag ${ACTUAL_REGISTRY}/${{ env.IMAGE_NAME }}:latest \ - --tag ${ACTUAL_REGISTRY}/${{ env.IMAGE_NAME }}:${TAG} \ - --tag ${ACTUAL_REGISTRY}/${{ env.IMAGE_NAME }}:git-${SHORT_SHA} \ - --cache-from type=registry,ref=${ACTUAL_REGISTRY}/${{ env.IMAGE_NAME }}:buildcache \ - --cache-to type=registry,ref=${ACTUAL_REGISTRY}/${{ env.IMAGE_NAME }}:buildcache,mode=max \ + --tag "${REGISTRY_TO_USE}/${IMAGE_NAME}:latest" \ + --tag "${REGISTRY_TO_USE}/${IMAGE_NAME}:${TAG}" \ + --tag "${REGISTRY_TO_USE}/${IMAGE_NAME}:git-${SHORT_SHA}" \ + --cache-from type=registry,ref="${REGISTRY_TO_USE}/${IMAGE_NAME}:buildcache" \ + --cache-to type=registry,ref="${REGISTRY_TO_USE}/${IMAGE_NAME}:buildcache",mode=max \ --build-arg BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ') \ --build-arg GIT_COMMIT=${COMMIT_SHA} \ --build-arg GIT_BRANCH=${REF_NAME} \