Il problema era che MinVer veniva eseguito dentro il container Docker dove la
directory .git non esiste, causando il warning MINVER1001 e l'uso di 0.0.0-alpha.0
(poi sostituito dal fallback hardcoded 2.1.0).
Soluzione:
- La versione viene calcolata sul runner CI/CD (dove git e' disponibile)
- Esportata come variabile d'ambiente APP_VERSION via GITHUB_ENV
- Passata al Docker build tramite --build-arg APP_VERSION
- Nei Dockerfile aggiunto ARG APP_VERSION e /p:MinVerVersionOverride per imporla
a MinVer senza che tenti di accedere a git (assente nel container)
- ARG ridichiarato dopo ogni FROM in multi-stage build (comportamento Docker)
- Disabilitato target MSBuild GenerateVersionJson durante build CI/CD
- Aggiunta condizione: non esegue se ContinuousIntegrationBuild=true
- Aggiornato Dockerfile per usare /p:ContinuousIntegrationBuild=true
- Previene sovrascrittura del version.json generato dal workflow Gitea
- Risolve problema: container mostra v1.0.0-dev invece della versione da git tag
- Cambiato immagine base da Alpine a Debian per migliore compatibilità SQLite
- Aggiunto SQLitePCLRaw.bundle_e_sqlite3 per librerie native cross-platform
- Installato sqlite3 e libsqlite3-dev in Debian
- Risolve definitivamente: 'Error loading shared library libe_sqlite3.so'
- Sostituito /p:UseAppHost=false con /p:SelfContained=false in entrambi i Dockerfile
- .NET 9.0 richiede AppHost per applicazioni self-contained
- SelfContained=false è appropriato per container Docker con runtime separato
- Fix applicato sia a Dockerfile (Linux) che Dockerfile.windows
- 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