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:
@@ -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} \
|
||||||
|
|||||||
Reference in New Issue
Block a user