This repository contains the complete CI/CD pipeline setup for deploying a full-stack application built with Spring Boot (backend) and Angular (frontend) using tools like Jenkins, Docker, and Docker Compose.
- 🐳
Dockerfile
– to containerize the Spring Boot backend - ⚙️
docker-compose.yml
– to orchestrate multi-container setup (Angular + Spring Boot) - 🔐
.env
– for environment variables - 🛠
jenkinsfile
– for automating the CI/CD pipeline via Jenkins - ☕
pom.xml
– Maven project for backend dependency management mvnw
,mvnw.cmd
– Maven wrapper scripts for portability
The Jenkins pipeline defined in jenkinsfile
executes the following:
- Clone the repository
- Build the backend using Maven
- Build and package the frontend Angular app
- Build Docker images for both apps
- Push to Docker Hub (optional configuration)
- Deploy containers via Docker Compose
The docker-compose.yml
manages:
- A Spring Boot API container
- An Angular frontend container
- (Optionally) a MySQL or PostgreSQL DB container (if added)
Make sure Docker and Docker Compose are installed and running.
docker-compose up --build
├── docker-compose.yml # Multi-service orchestration
├── dockerfile # Backend containerization
├── jenkinsfile # Jenkins pipeline config
├── .env # Environment configuration
├── pom.xml # Maven backend config
├── src/ # Application source code
- Docker & Docker Compose
- Jenkins (locally or on Jenkins server)
- Node.js & Angular CLI (for local frontend testing)
- Java 11+ & Maven
- Clone the repository
- Edit
.env
anddocker-compose.yml
as needed - Run the full stack:
docker-compose up --build
Ensure Jenkins has:
- Docker installed
- Git credentials configured
- Docker daemon access
- Optional: Docker Hub or artifact registry credentials
Use the .env
file to configure:
- Application ports
- DB credentials (if used)
- JWT secrets
- Build modes
- Add Nginx as a reverse proxy
- Add TLS certificates (Let's Encrypt or custom)
- Integrate SonarQube for code quality checks
- Add Kubernetes deployment manifests
Feel free to fork the repo and submit a pull request. All contributions and suggestions are welcome!
Built with 💻 DevOps tools to streamline Spring Boot + Angular deployments.