Questa applicazione è composta da un Backend Java (Spring Boot), un Frontend Apache e un database MySQL. Il progetto è strutturato per supportare diverse modalità di deployment utilizzando i branch di Git.
Il progetto è organizzato in diversi branch per supportare differenti modalità di deployment:
main: Contiene la descrizione generale del progetto, l'architettura logica e la documentazione di alto livello.docker: Configurazione ottimizzata per Docker Compose (utilizzo locale). Spostati in questo branch per lo sviluppo rapido.k8s: Manifest e configurazioni specifiche per Kubernetes (testato su Minikube con ConfigMaps e Namespace dedicato).
Per un avvio rapido in locale:
git checkout docker
docker compose up -d --buildL'applicazione sarà disponibile su http://localhost:80.
Per il deployment su cluster:
git checkout k8s
# Segui le istruzioni nel README del branch k8sLe ultime evoluzioni del progetto includono:
- Fix CORS: Risolto l'errore 403 Forbidden configurando un
CorsConfigurationSourceesplicito nel backend per supportare chiamate da diversi Origin. - Kubernetes Ready: Esternalizzazione delle configurazioni Apache in ConfigMaps e isolamento nel namespace
apache-java-mysql. - Build Isolation: Utilizzo di database H2 in-memory per l'esecuzione dei test durante la build dell'immagine Docker.
Le immagini dell'applicazione sono disponibili pubblicamente sul profilo Docker Hub di lusig76:
- Backend:
lusig76/java-backend:latest - Frontend:
lusig76/apache-frontend:latest
- Git
- Docker & Docker Compose (per il branch
docker) - Cluster Kubernetes (Minikube, Kind, GKE, ecc.) & kubectl (per il branch
k8s)