Passa al contenuto principale

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
warning

Esegui questo script una sola volta. Su un database già inizializzato causerebbe errori.

informazioni

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