netgescon-day0/docs/000-FILAMENT/08-DOCKER-SETUP.md

135 lines
2.9 KiB
Markdown

# Docker setup operativo Day0
Questo documento descrive lo stack Docker realmente usato nel repository operativo `netgescon-day0`.
## Obiettivo
Avviare solo l'applicativo NetGescon in container, lasciando fuori:
- MySQL esistente
- archivi gia presenti
- storage gia popolato, quando serve lavorare sui dati correnti
## Stack effettivo
Il file autorevole e `docker-compose.yml` nella root del repository.
Servizi inclusi:
- `app`
- `queue`
- `scheduler`
- `nginx`
- `redis`
- `mailhog`
Il wrapper operativo e:
```bash
bash docker/run-app-stack.sh up -d --build
```
## 1) Configurazione locale
Creare il file `.env.docker.local` partendo da `.env.docker.local.example`.
Variabili minime da verificare:
- `APP_URL`
- `APP_PORT`
- `NETGESCON_DB_HOST`
- `NETGESCON_DB_PORT`
- `NETGESCON_DB_DATABASE`
- `NETGESCON_DB_USERNAME`
- `NETGESCON_DB_PASSWORD`
- `NETGESCON_STORAGE_PATH`
- `NETGESCON_CACHE_PATH`
- `RUN_MIGRATIONS`
Valori consigliati per lavorare sui dati esistenti:
```dotenv
RUN_MIGRATIONS=false
NETGESCON_STORAGE_PATH=./storage
NETGESCON_CACHE_PATH=./bootstrap/cache
```
Se gli archivi correnti sono gia presenti nella cartella `storage` del workspace, non serve alcun path esterno aggiuntivo: il container usera direttamente quello storage.
Se invece gli archivi stanno fuori dal repository, puntare `NETGESCON_STORAGE_PATH` al path host reale.
## 2) Validazione prima dell'avvio
Controllare che il compose risolva correttamente le variabili:
```bash
bash docker/run-app-stack.sh config
```
Questo e il check piu economico per verificare:
- file env presente
- sostituzione variabili corretta
- bind mount storage/cache coerenti
- nessuna migrazione automatica indesiderata
## 3) Avvio stack
Avvio completo:
```bash
bash docker/run-app-stack.sh up -d --build
```
Verifica container:
```bash
bash docker/run-app-stack.sh ps
```
Log applicazione:
```bash
bash docker/run-app-stack.sh logs app --tail=200
```
Log nginx:
```bash
bash docker/run-app-stack.sh logs nginx --tail=200
```
## 4) Accesso e collaudo
URL locale/staging base:
```text
http://localhost:${APP_PORT}
```
Collaudi minimi dopo l'avvio:
1. login Filament
2. pagina `Servizi / Utenze`
3. verifica righe FE acqua con riferimento unico `CBILL`
4. pagina `Acquisizione Documenti`
5. lettore Datalogic con visualizzazione del testo etichetta archivio
## 5) Politica dati attuale
- DB esterno esistente: consentito
- archivi esistenti: consentiti
- migrazioni automatiche in avvio: disattivate di default
- `mailhog`: usato per test locale, non per invio ufficiale
## 6) Differenze rispetto ai documenti storici
I documenti storici che citano `docker/docker-compose.prod.yml`, `.env.docker.example` o mount legacy separati non sono piu il riferimento operativo principale per Day0.
Per Day0 fanno fede:
- `docker-compose.yml`
- `docker/run-app-stack.sh`
- `.env.docker.local.example`
- `.env.docker.local` locale non versionato