Harden Tailwind Docker build and add deploy verification

This commit is contained in:
Luca Sacchi Ricciardi
2026-04-25 15:08:57 +02:00
parent 32302e2b06
commit 229115ae87
9 changed files with 1311 additions and 14 deletions
+41
View File
@@ -236,6 +236,12 @@ Usa il file `docker-compose.yml` fornito:
# Avviare i servizi
docker compose up -d
# Rebuild completo senza cache (consigliato dopo modifiche UI/Tailwind)
docker compose build --no-cache
# Verificare che il CSS compilato non sia vuoto
docker exec llm-monitor-app wc -l /app/app/web/static/css/output.css
# Visualizzare i log
docker compose logs -f llm-monitor
@@ -246,6 +252,41 @@ docker compose down
docker compose restart llm-monitor
```
### Deploy consigliato (Tailwind-safe)
Se l'interfaccia appare senza stili o una modale non si posiziona correttamente, usa il deploy con rebuild no-cache e verifica CSS:
```bash
cd /opt/llm-monitor
docker compose down
docker compose build --no-cache
docker compose up -d
sleep 5
docker exec llm-monitor-app wc -l /app/app/web/static/css/output.css
```
In alternativa dal repository:
```bash
make deploy-no-cache
```
### Tailwind Build Process
- Lo stage `css-builder` del Dockerfile installa dipendenze Node con `npm ci`.
- Prima della build Tailwind vengono copiati template HTML e JS usati dal content scan.
- Dopo `npm run tailwind:build` una verifica bloccante controlla che `output.css` esista e abbia almeno 100 linee.
- Lo stage runtime copia `output.css` compilato da `css-builder` con `COPY --from=css-builder`.
### Troubleshooting UI
Se la modale non appare o i componenti sembrano "unstyled":
1. Esegui `docker compose build --no-cache`.
2. Riavvia con `docker compose up -d`.
3. Verifica CSS compilato: `docker exec llm-monitor-app wc -l /app/app/web/static/css/output.css`.
4. Se il numero linee e `< 100`, la build Tailwind non e riuscita correttamente.
### Container sempre acceso
Il container `llm-monitor` rimarrà in esecuzione fino al suo arresto manuale: