fix: Docker image tag format - remove leading slashes from registry URL

- Add validation and cleanup for ACTUAL_REGISTRY variable
- Remove leading/trailing slashes from registry URLs
- Use REGISTRY_TO_USE variable with fallback to REGISTRY env
- Fix invalid tag format '/framework:latest' error
This commit is contained in:
2025-10-31 21:03:10 +01:00
parent 813cf32b9a
commit 0ffea7aaf9

View File

@@ -390,10 +390,10 @@ jobs:
if [ $LOGIN_EXIT_CODE -eq 0 ]; then if [ $LOGIN_EXIT_CODE -eq 0 ]; then
echo "✅ Erfolgreich bei Registry angemeldet über HTTP: $TEST_URL:5000" echo "✅ Erfolgreich bei Registry angemeldet über HTTP: $TEST_URL:5000"
REGISTRY_URL="$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 LOGIN_SUCCESS=true
echo "REGISTRY_URL=$TEST_URL:5000" >> $GITHUB_ENV echo "REGISTRY_URL=$TEST_URL:5000" >> $GITHUB_ENV
echo "ACTUAL_REGISTRY=$TEST_URL:5000" >> $GITHUB_ENV echo "ACTUAL_REGISTRY=$ACTUAL_REGISTRY" >> $GITHUB_ENV
break break
else else
echo "⚠️ HTTP-Login fehlgeschlagen für $TEST_URL:5000, versuche nächste URL..." echo "⚠️ HTTP-Login fehlgeschlagen für $TEST_URL:5000, versuche nächste URL..."
@@ -436,13 +436,20 @@ jobs:
echo "" echo ""
echo "✅ Registry-Login erfolgreich!" echo "✅ Registry-Login erfolgreich!"
echo "📦 Verwendete Registry URL: $REGISTRY_URL" echo "📦 Verwendete Registry URL: $REGISTRY_URL"
echo "📦 ACTUAL_REGISTRY: $ACTUAL_REGISTRY"
# Stelle sicher, dass ACTUAL_REGISTRY gesetzt ist (für Build-Step) # 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" ACTUAL_REGISTRY="$REGISTRY_URL"
echo "ACTUAL_REGISTRY=$REGISTRY_URL" >> $GITHUB_ENV
fi 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 - name: Build and push Docker image
shell: bash shell: bash
env: env:
@@ -451,12 +458,25 @@ jobs:
cd /workspace/repo cd /workspace/repo
# Fallback falls ACTUAL_REGISTRY nicht gesetzt wurde # Fallback falls ACTUAL_REGISTRY nicht gesetzt wurde
if [ -z "$ACTUAL_REGISTRY" ]; then if [ -z "$ACTUAL_REGISTRY" ] || [ "$ACTUAL_REGISTRY" = "/" ] || [ "$ACTUAL_REGISTRY" = "" ]; then
echo "⚠️ ACTUAL_REGISTRY nicht gesetzt, verwende Fallback: ${{ env.REGISTRY }}" echo "⚠️ ACTUAL_REGISTRY nicht gesetzt oder leer, verwende Fallback: ${{ env.REGISTRY }}"
ACTUAL_REGISTRY="${{ env.REGISTRY }}" ACTUAL_REGISTRY="${{ env.REGISTRY }}"
fi 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 "📦 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 }}" COMMIT_SHA="${{ github.sha }}"
if [ -z "$COMMIT_SHA" ]; then if [ -z "$COMMIT_SHA" ]; then
@@ -469,15 +489,15 @@ jobs:
SHORT_SHA=$(echo "$COMMIT_SHA" | cut -c1-7) SHORT_SHA=$(echo "$COMMIT_SHA" | cut -c1-7)
TAG="${SHORT_SHA}-$(date +%s)" TAG="${SHORT_SHA}-$(date +%s)"
# Build with cache # Build with cache - verwende REGISTRY_TO_USE Variable
docker buildx build \ docker buildx build \
--platform linux/amd64 \ --platform linux/amd64 \
--file ./Dockerfile.production \ --file ./Dockerfile.production \
--tag ${ACTUAL_REGISTRY}/${{ env.IMAGE_NAME }}:latest \ --tag "${REGISTRY_TO_USE}/${IMAGE_NAME}:latest" \
--tag ${ACTUAL_REGISTRY}/${{ env.IMAGE_NAME }}:${TAG} \ --tag "${REGISTRY_TO_USE}/${IMAGE_NAME}:${TAG}" \
--tag ${ACTUAL_REGISTRY}/${{ env.IMAGE_NAME }}:git-${SHORT_SHA} \ --tag "${REGISTRY_TO_USE}/${IMAGE_NAME}:git-${SHORT_SHA}" \
--cache-from type=registry,ref=${ACTUAL_REGISTRY}/${{ env.IMAGE_NAME }}:buildcache \ --cache-from type=registry,ref="${REGISTRY_TO_USE}/${IMAGE_NAME}:buildcache" \
--cache-to type=registry,ref=${ACTUAL_REGISTRY}/${{ env.IMAGE_NAME }}:buildcache,mode=max \ --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 BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ') \
--build-arg GIT_COMMIT=${COMMIT_SHA} \ --build-arg GIT_COMMIT=${COMMIT_SHA} \
--build-arg GIT_BRANCH=${REF_NAME} \ --build-arg GIT_BRANCH=${REF_NAME} \