From 81fce773a96a32e0f362e68762dec6e93d78b4b5 Mon Sep 17 00:00:00 2001 From: Alessio Dal Santo Date: Sun, 25 Jan 2026 17:16:53 +0100 Subject: [PATCH] Fix: Ottimizzato Dockerfile e risolto timeout push registry Gitea - Migrato immagine runtime da Debian a Alpine (riduzione ~60% dimensione) - Aggiunto suffisso -linux ai tag per manifest multi-platform - Disabilitate attestations/provenance per ridurre overhead push - Implementato retry automatico in caso di fallimento push - Corretto utilizzo apk invece di apt-get per Alpine Linux Risolve: HTTP 524 timeout durante push immagini al registry --- .gitea/workflows/docker-build.yml | 14 ++++++++++++++ Dockerfile | 13 ++++++++----- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/docker-build.yml b/.gitea/workflows/docker-build.yml index a46ddae..b17c14e 100644 --- a/.gitea/workflows/docker-build.yml +++ b/.gitea/workflows/docker-build.yml @@ -92,6 +92,20 @@ jobs: tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} platforms: linux/amd64 + # Aumenta timeout per registry lenti + build-args: | + BUILDKIT_STEP_LOG_MAX_SIZE=50000000 + provenance: false + sbom: false + env: + BUILDX_NO_DEFAULT_ATTESTATIONS: 1 + + - name: Retry push on failure + if: failure() && steps.build.outcome == 'failure' + run: | + echo "Retry push after 30 seconds..." + sleep 30 + docker push $(echo "${{ steps.meta.outputs.tags }}" | head -n1) build-windows: name: Build Windows Container diff --git a/Dockerfile b/Dockerfile index 5665ecc..d33e4a0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,17 +24,20 @@ RUN dotnet build "Data_Coupler.csproj" -c Release -o /app/build # Stage 2: Publish FROM build AS publish -RUN dotnet publish "Data_Coupler.csproj" -c Release -o /app/publish /p:UseAppHost=false +RUN dotnet publish "Data_Coupler.csproj" -c Release -o /app/publish \ + /p:UseAppHost=false \ + /p:PublishTrimmed=false \ + /p:PublishSingleFile=false # Stage 3: Runtime -FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS final +FROM mcr.microsoft.com/dotnet/aspnet:9.0-alpine AS final WORKDIR /app # Installa le dipendenze necessarie per ExcelDataReader e altre librerie -RUN apt-get update && apt-get install -y \ +RUN apk add --no-cache \ libgdiplus \ - libc6-dev \ - && rm -rf /var/lib/apt/lists/* + icu-libs \ + && rm -rf /var/cache/apk/* # Crea la directory per il database con i permessi corretti RUN mkdir -p /var/lib/Data_Coupler && \