Questo è un semplice progetto di esempio che dimostra un'architettura a tre container con Docker:
- Frontend: Un'applicazione PHP che mostra un contatore e un pulsante.
- Backend: Un'API PHP che gestisce la logica del contatore e interagisce con il database.
- Database: Un'istanza di MySQL per memorizzare il valore del contatore.
Assicurati di avere installato sul tuo sistema:
-
Clona o scarica questo repository.
-
Crea un file
.envnella directory principale del progetto (se non esiste già) copiando il contenuto di.env.example(se fornito) o usando i seguenti valori:MYSQL_DATABASE=app_db MYSQL_USER=user MYSQL_PASSWORD=password MYSQL_ROOT_PASSWORD=rootpassword -
Avvia i container Docker. Apri un terminale nella directory principale del progetto e esegui il seguente comando:
docker-compose up -d --build
Questo comando compilerà le immagini per il frontend e il backend e avvierà tutti e tre i container in background.
-
Accedi all'applicazione. Una volta che i container sono in esecuzione, puoi accedere al frontend aprendo il tuo browser e navigando a:
Dovresti vedere una pagina con il valore del contatore (inizialmente 0) e un pulsante "Aggiungi". Cliccando sul pulsante, il valore verrà incrementato.
Per fermare i container, esegui il seguente comando dalla directory principale del progetto:
docker-compose downPer visualizzare i log di tutti i servizi in tempo reale, esegui il seguente comando:
docker-compose logs -fQuesto comando mostrerà i log del frontend, del backend e del database. Per visualizzare i log di un servizio specifico, aggiungi il nome del servizio al comando (es. docker-compose logs -f backend).
Per copiare i dati del database da un ambiente di test a uno di produzione, puoi seguire questi passaggi:
Esegui questo comando nel terminale del tuo ambiente di test per creare un file di backup (backup.sql) del database:
docker-compose exec db sh -c 'exec mysqldump --user=${MYSQL_USER} --password=${MYSQL_PASSWORD} ${MYSQL_DATABASE}' > backup.sqlQuesto comando utilizza mysqldump all'interno del container db per esportare il database.
Trasferisci il file backup.sql dal tuo ambiente di test al tuo ambiente di produzione utilizzando un metodo a tua scelta (es. scp, rsync, o copia manuale).
Una volta che il file backup.sql si trova nel tuo ambiente di produzione, esegui questo comando per importare i dati nel database di produzione:
cat backup.sql | docker-compose exec -T db sh -c 'exec mysql --user=${MYSQL_USER} --password=${MYSQL_PASSWORD} ${MYSQL_DATABASE}'Questo comando importa i dati dal file backup.sql nel container db dell'ambiente di produzione.