Script da avviare
Dopo aver eseguito il primo deploy, alcuni script devono essere lanciati manualmente sul server per inizializzare l'ambiente.
Prerequisiti
Accedi al server via SSH prima di procedere:
ssh utente@<IP_SERVER>
cd ~/deploy
1. Inizializzazione del database
Al primo avvio il database è vuoto. Esegui la migrazione iniziale per creare le tabelle:
# Attendi che il container MySQL sia healthy
docker compose -f docker-compose.test.yml ps mysql
# Esegui le migrazioni
docker exec -i test-mysql-1 mysql -u root -p"$MYSQL_ROOT_PASSWORD" "$MYSQL_DATABASE" < init.sql
Esegui questo script una sola volta. Su un database già inizializzato causerebbe errori.
Porta MySQL sul server: il container MySQL è esposto sulla porta 3316 dell'host (non 3306), per evitare conflitti con altri progetti sullo stesso server che potrebbero già usare la porta standard. La porta interna del container resta 3306 — i microservizi si connettono tramite la rete Docker interna e non sono impattati.
Se devi connetterti al DB dall'esterno (es. da un client SQL sul tuo PC):
Host: <IP_SERVER>
Port: 3316
User: ${MYSQL_USER}
2. Creazione volumi Docker
I volumi persistenti devono esistere prima che i container partano:
docker volume create test_mysql_data
docker volume create test_redis_data
3. deploy-with-profiles.sh
Lo script di deploy legge i profili attivi dalla variabile COMPOSE_PROFILES nel file .env. Verifica che sia impostata correttamente prima di lanciare il deploy:
grep COMPOSE_PROFILES .env
Il valore atteso è una lista di profili separati da virgola, ad esempio:
COMPOSE_PROFILES=authservice,datahub,scheduler,alertingservice
4. Primo avvio manuale
Per il primo avvio è consigliato lanciare i servizi core prima degli altri:
# Solo core (mysql, redis, traefik)
docker compose -f docker-compose.test.yml --env-file .env -p test up -d mysql redis traefik
# Attendi ~30s che MySQL sia pronto, poi avvia tutto
sleep 30
./deploy-with-profiles.sh TEST docker-compose.test.yml .env
5. Verifica stato container
docker compose -f docker-compose.test.yml -p test ps
docker compose -f docker-compose.test.yml -p test logs --tail=50